玉家伙,我的计划的目的是从名为orginal.txt格式包含名称的文本文件阅读:分段故障
Kyle Butler
Bob Jones
Nathan Moore
然后该程序需要这些名字一次一个,并把它们转化成类似:
[email protected]
这个地址,然后通过行存储线称为final.txt
问题是一个新的文本文件,我不能让它开始工作,它给了我一个segme ntation故障甚至不得到书面final.txt
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void write(char line[100]);
int main()
{
FILE *fp;
fp = fopen("original.txt", "r+");
char line[100];
char mod[30]="@fakeemail.com\n";
while (fgets(line, 100, fp) != NULL){
int i;
for(i=0; i<100; ++i){
if(line[i]==' '){
line[i]='.';
}
if(line[i]=='\n'){
line[i]='\0';
}
strcat(line, mod);
}
FILE *fp2;
fp2 = fopen("final.txt", "a");
if (fp2 != NULL){
fputs(line, fp2);
fclose(fp2);
}
}
fclose(fp);
return 0;
}
段错在哪里发生?在这条线上? strcat(line,mod); – canhazbits
作为升级,您可能需要考虑是否需要为每次写入打开和关闭输出文件。 – Duck
您是否定义了自己的函数'write'?已经有一个名为'write'的C库例程。您应该选择一个更适合我们应用程序的名称。 '写'是相当普遍的。 – lurker