跳转到a通缉行并在c中覆盖其中的第一个字母
您好,我正试图用c语言写一个通缉行号的文件 由于一些未知的原因,它没有被写下来 这是我的检查代码:跳转到a通缉行并在c中覆盖其中的第一个字母,c,printf,C,Printf,您好,我正试图用c语言写一个通缉行号的文件 由于一些未知的原因,它没有被写下来 这是我的检查代码: int main() { int x; int counter = 0; char buffer[MAX]; FILE* fp = fopen("sale_day.txt","w"); fprintf(fp,"5 orange 11\n"); fprintf(fp,"4 pelephone 222\n"); fprintf(fp,"3 mir
int main()
{
int x;
int counter = 0;
char buffer[MAX];
FILE* fp = fopen("sale_day.txt","w");
fprintf(fp,"5 orange 11\n");
fprintf(fp,"4 pelephone 222\n");
fprintf(fp,"3 mirs 4000\n");
fprintf(fp,"2 cellcom 302\n");
fprintf(fp,"1 tmobile 500\n");
fclose(fp);
fp = fopen("sale_day.txt","r+");
while (counter < 2)
{// jumping two rows
fgets(buffer,MAX,fp);// i tried using fscanf which didnt help aswell
counter++;
}
fflush(fp); // i tried with and without still doesnt work
fputs("$",fp);
fflush(fp); // i tried with and without still doesnt work
fclose(fp);
}
由于某些原因,它在“sale_day.txt”文件中保持如下状态
即使我调试它时,它也会显示“$”而不是3位数字
提前感谢您的帮助 代码工作正常,也没有
fflush
-行。运行程序后,第3行更改如下:
之前:
3和平号4000
之后:
$mirs 4000
我按原样运行了您的代码,只是上面有:
#include <stdio.h>
#define MAX 255
#包括
#定义最大值255
代码工作正常,也没有fflush
-行。运行程序后,第3行更改如下:
之前:
3和平号4000
之后:
$mirs 4000
我按原样运行了您的代码,只是上面有:
#include <stdio.h>
#define MAX 255
#包括
#定义最大值255
你期待什么?当我运行您的代码时,我得到:
5 orange 11
4 pelephone 222
$ mirs 4000
2 cellcom 302
1 tmobile 500
考虑到您编写的代码,这是完全正确的:读取两行(将您放置在第三行),然后编写一个$
字符
请注意,文件写入操作会覆盖现有文件数据,或将新数据附加到文件末尾。它们不插入数据(可能是您期望的操作)。您期望的是什么?当我运行您的代码时,我得到:
5 orange 11
4 pelephone 222
$ mirs 4000
2 cellcom 302
1 tmobile 500
考虑到您编写的代码,这是完全正确的:读取两行(将您放置在第三行),然后编写一个$
字符
请注意,文件写入操作会覆盖现有文件数据,或将新数据附加到文件末尾。它们不插入数据(这可能是您期望的操作)。行内是什么意思?我想用$覆盖行内的第一个字母。您是否尝试使用您手动创建的文件?(刚刚运行了它,comment..FILE*fp=fopen(“sale_day.txt”,“w”);…Fclose(fp);…我使用c编写了所有文件,正如我在问题中提到的,我没有在windows中使用创建新文本文档
fflush
创建文件,这可能是问题所在。请查看行内是什么意思?我想用$覆盖行内的第一个字母。您是否尝试过使用y手动创建的文件ou?(刚刚运行,注释..文件*fp=fopen(“sale_day.txt”,“w”);…Fclose(fp);…我使用c编写了所有文件,正如我在问题中提到的,我没有在windows中使用create new text document创建文件fflush
,这可能是问题所在。请帮我检查一下,使用visual studio 10在调试器中它不起作用,但在我试图读取的文本文件中它没有被更改你没有在visual studio上运行它吗?没有,我是用gcc编译并在Ubuntu中运行的。我注意到fopen的MSDN文档说明你应该有fflush
()当您从使用r+
打开的文件在读写之间切换时,您在写$
之前所做的fflush
很好。感谢您的重播,我正在试图找出如何处理visual studio中出现的这个恼人的错误…fflush没有帮助,但在您发布的链接中没有提到它是否存在fflush/fsetpos或倒带操作(fflush没有帮助),你知道如何处理它吗?fflush
实际上可能是问题所在。请帮我检查一下,它在调试器中使用visual studio 10不起作用,但在我试图读取的文本文件中它没有被更改。你没有在visual studio上运行它吗?不,我用gcc编译并在Ubuntu中运行。我注意到MSDN documfopen的entation表示您应该有fflush
()当您从使用r+
打开的文件在读写之间切换时,您在写$
之前所做的fflush
很好。感谢您的重播,我正在试图找出如何处理visual studio中出现的这个恼人的错误…fflush没有帮助,但在您发布的链接中没有提到它有什么可能是fflush/fsetpos或倒带操作(fflush没有帮助),你知道如何处理吗?fflush
实际上可能是问题所在。检查我希望得到你刚才写的内容…当我使用记事本打开文件时,它显示“3”由于某种原因,当我调试它时,它显示它有$,可能我的编译器有问题…我没有任何线索:(我希望得到你刚才写的东西…当我使用记事本打开文件时,它显示一个“3”而不是$,因为某种原因,当我调试它时,它显示它有$,可能我的编译器有问题…我没有任何线索:(