gpt4 book ai didi

c - 写入文件时,fputs() 不会更改行

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:51 25 4
gpt4 key购买 nike

我目前正在尝试用 C 语言创建一个数据库,使用 .txt 文档作为存储所有数据的地方。但是我无法让 fputs() 换行,所以我的程序在此 .txt 文档中写入的所有内容都只在一行上。

    int main(void){

char c[1000];
FILE *fptr;
if ((fptr=fopen("data.txt","r"))==NULL){
printf("Did not find file, creating new\n");
fptr = fopen("data.txt", "wb");
fputs("//This text file contain information regarding the program 'monies.c'.\n",fptr);
fputs("//This text file contain information regarding the program 'monies.c'.\n",fptr);
fputs("//Feel free to edit the file as you please.",fptr);
fputs("'\n'",fptr);
fputs("(Y) // Y/N - Yes or No, if you want to use this as a database",fptr);
fputs("sum = 2000 //how much money there is, feel free to edit this number as you please.",fptr);
fclose(fptr);


}
fscanf(fptr,"%[^\n]",c);
printf("Data from file:\n%s",c);

fclose(fptr);
return 0;
}

这是我的测试文档。我觉得我已经尝试了一切,然后尝试了一些,但无法让它改变线路,非常感谢帮助。顺便提一句。输出如下所示: Output from the program.

最佳答案

你的程序有两个问题:

  • 您应该指定“w”而不是“wb”,以便以文本而不是二进制形式读取和写入文件。尽管在某些系统中这没有区别并且 b 被忽略。
  • 文件读取部分应该在 else 中,否则它会在创建文件后执行,fptr 不包含有效值。

这是经过更正的代码。我确实得到了一个多行 data.txt。

int main(void){

char c[1000];
FILE *fptr;
if ((fptr=fopen("data.txt","r"))==NULL){
printf("Did not find file, creating new\n");
fptr = fopen("data.txt", "w");
fputs("//This text file contain information regarding the program 'mon
fputs("//This text file contain information regarding the program 'mon
fputs("//Feel free to edit the file as you please.",fptr);
fputs("'\n'",fptr);
fputs("(Y) // Y/N - Yes or No, if you want to use this as a database",
fputs("sum = 2000 //how much money there is, feel free to edit this nu
fclose(fptr);
}
else
{
fscanf(fptr,"%[^\n]",c);
printf("Data from file:\n%s",c);
fclose(fptr);
}
return 0;
}

关于c - 写入文件时,fputs() 不会更改行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33121509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com