求C++代码
怎么从一个文件中按规定的字节读取数据然后写入新的数据里。
例如:1.txt为10kB,把5KB写入1.1txt,5KB写入1.2txt
求关键代码 。。。
[解决办法]
#include <iostream>
#include <fstream>
#include <string>
#define BUFFER_SIZE 1024
using namespace std;
int main(int argc, char *argv[])
{
ifstream ifs("1.txt", ios::in);
ofstream ofs1("1_1.txt", ios::app);
ofstream ofs2("1_2.txt", ios::app);
char buffer[BUFFER_SIZE];
for (int i = 0; i < 5; ++i)
{
ifs.read(buffer, BUFFER_SIZE);
ofs1.write(buffer, BUFFER_SIZE);
}
for (int i = 0; i < 5; ++i)
{
ifs.read(buffer, BUFFER_SIZE);
ofs2.write(buffer, BUFFER_SIZE);
}
return 0;
}
[解决办法]
提醒:
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
[解决办法]
#include <iostream>
#include <fstream>
#include <string>
#define BUFFER_SIZE 1024
using namespace std;
int main(int argc, char *argv[])
{
ifstream ifs("1.txt", ios::in);
ofstream ofs1("1_1.txt", ios::app);
ofstream ofs2("1_2.txt", ios::app);
char buffer[BUFFER_SIZE];
int i = 0;
for (i = 0; i < 5; ++i)
{
ifs.read(buffer, BUFFER_SIZE);
ofs1.write(buffer, BUFFER_SIZE);
}
for (i = 0; i < 5; ++i)
{
ifs.read(buffer, BUFFER_SIZE);
ofs2.write(buffer, BUFFER_SIZE);
}
return 0;
}
你什么编译器啊?