用C++,把一个文件的重写,在每一行前面加上行号和空格。怎么写程序?文件名称是“fish.txt”。

2024-12-26 12:53:57
推荐回答(2个)
回答1:

/*
将读出行的首部添加行号和空格后写到另一个文件filen.txt中,然后删除文件file.txt,再将filen.txt改为file.txt即可。在磁盘文件中添加内容再写回是很难实现的,且又因为文本文件(*.txt)的特殊结构,即使在不改变字符个数的情况下,读出再写回都有可能出错,所以下述代码使用了变通的方法,既简单,又可靠,这里强力推荐!
*/
#include
#include

int main(void) {
int n = 1;
char s[1025]; // 假定每行不超过1024个字符
FILE *fin = fopen("file.txt","rt");
FILE *fout = fopen("filen.txt","wt");
if((fin == NULL) || (fout == NULL)) {
printf("无法打开文件!\n");
exit(1);
}
while(fscanf(fin,"%s",s) == 1) {
fprintf(fout,"%d %s",n,s);
n++;
}
fclose(fin);
fclose(fout);
return 0;
}

回答2:

#include
#include
using namespace std;

int main()
{
FILE* file = NULL;
if(0 == fopen_s(&file,"fish.txt","w"))
{
fprintf_s(file,"%s","1 \n2 \n3 \n");
}
fclose(file);
return 0;
}