Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
这是一个学校项目的一部分,因此我无法向任何人展示我的代码,但是可以说,我的项目必须读取,复制和编辑自己的源代码(因为我们正在研究多态恶意软件)。我正在使用fgets()读取每一行代码,但是每当我有一行带有模运算或格式字符串的代码时,都会丢失%符号以及后面的任何非空白字符。我猜fgets()会将%符号当作格式字符串对待,那么如何告诉它不要这样做呢?
发表答案编辑:
我要发布一行代码来演示错误所在。
这就是我从文件中获取字符串的方式:
这就是我将字符串写入新文件的方式(这是错误的)
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
这是一个学校项目的一部分,因此我无法向任何人展示我的代码,但是可以说,我的项目必须读取,复制和编辑自己的源代码(因为我们正在研究多态恶意软件)。我正在使用fgets()读取每一行代码,但是每当我有一行带有模运算或格式字符串的代码时,都会丢失%符号以及后面的任何非空白字符。我猜fgets()会将%符号当作格式字符串对待,那么如何告诉它不要这样做呢?
发表答案编辑:
我要发布一行代码来演示错误所在。
这就是我从文件中获取字符串的方式:
fgets(line, 128, src_file);
这就是我将字符串写入新文件的方式(这是错误的)
fprintf(out_file, line);
最佳答案
您对fprintf(out_file, line)
的呼叫是错误的。
当line
包含%
字符时,fprintf()
会将其解释为格式说明符,这不是您想要的。
您应该改为fprintf(out_file, "%s", line)
。
09-06 16:53