【发布时间】:2020-09-14 15:28:50
【问题描述】:
我希望下面的代码生成一个名为 stackexchangeiscool.txt 的文件并写入
Hello!
I changed my mind: 17291729
但事实并非如此。它会生成一个名为 stackexchangeiscool.txt 的文件,其中包含文本
Hello!
I changed my mind: 17293748407
这段代码肯定没有意义;它是我遇到奇怪问题的较大代码的一部分。
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
FILE * file = NULL;
file = fopen("stackexchangeiscool.txt","w");
int n = 1729;
char myFirstString[] = "This is a string.";
fprintf(file, "Hello!\n");
sprintf(myFirstString, "I changed my mind: %d", n);
fprintf(file, "%s", myFirstString);
fprintf(file, "%d", n);
fclose(file);
return(0);
}
编辑:下面的评论表明问题可能来自 myFirstString 太短而无法包含其中包含整数的新字符串。但是,当我删除
fprintf(file, "%d", n);
我明白了
Hello!
I changed my mind: 1729
所以 myFirstString 似乎能够包含字符串和整数。
【问题讨论】:
-
如果我删除 fprintf(file, "%d", n);它打印你好!我改变了主意:1729 这应该是正确的。