Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.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
C 扫描包含%symbol的行时,fgets()很奇怪_C_String_File Io - Fatal编程技术网

C 扫描包含%symbol的行时,fgets()很奇怪

C 扫描包含%symbol的行时,fgets()很奇怪,c,string,file-io,C,String,File Io,这是一个学校项目的一部分,所以我不能向任何人展示我的代码,但可以说,我的项目必须阅读、复制和编辑自己的源代码(因为我们正在研究多态恶意软件)。我使用fgets()来读取每一行代码,但是每当我有一行带有模运算或格式字符串的代码时,%符号和它后面的任何非空白字符都会丢失。我猜fgets()将%符号视为格式字符串,那么我如何告诉它不要这样做呢 回答后编辑: 我发布了一行代码来证明什么是错误的。 这是我从文件中获取字符串的方式: fgets(line, 128, src_file); 这就是我将字符串

这是一个学校项目的一部分,所以我不能向任何人展示我的代码,但可以说,我的项目必须阅读、复制和编辑自己的源代码(因为我们正在研究多态恶意软件)。我使用fgets()来读取每一行代码,但是每当我有一行带有模运算或格式字符串的代码时,%符号和它后面的任何非空白字符都会丢失。我猜fgets()将%符号视为格式字符串,那么我如何告诉它不要这样做呢

回答后编辑: 我发布了一行代码来证明什么是错误的。 这是我从文件中获取字符串的方式:

fgets(line, 128, src_file);
这就是我将字符串写入新文件的方式(这是错误的)

您对fprintf(out\u file,line)的调用是错误的

包含
%
字符时,它将被
fprintf()
解释为格式说明符,这不是您想要的


您应该将其改为
fprintf(out_file,“%s”,line)

如果您只需要将字符串写入您最好使用的文件:


如何确定缺少字符?我猜您是用
printf()
输出的,没有格式字符串?给我们一些代码。否则很难讨论(你所遇到的问题说明了这一点)。你不必展示一切。只需提供一个fprintf(out_文件,行);我猜我应该使用fprintf(out_文件,“%s”,行);如果您使用类似于
printf
-的函数打印任意字符串,则必须使用
printf(“%s”,string)
,而不要使用
printf(string)
。您非常擅长这一点,能够识别没有代码时的问题所在(再次表示抱歉)。
fprintf(out_file, line);
fputs(line, out_file);