Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳转到a通缉行并在c中覆盖其中的第一个字母_C_Printf - Fatal编程技术网

跳转到a通缉行并在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

您好,我正试图用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 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”而不是$,因为某种原因,当我调试它时,它显示它有$,可能我的编译器有问题…我没有任何线索:(