C fprintf错误和未处理的异常
下面是一段代码:C fprintf错误和未处理的异常,c,visual-studio,visual-studio-2013,C,Visual Studio,Visual Studio 2013,下面是一段代码: long long someNumber; ... do{ ... scanf("%d", &someNumber); ... } while (...); fprintf(someFile, "%d", someNumber); 我需要读一个包含11个字符的数字。我尝试了所有的扫描和fprintf模式,如%Ld、%lld等,但结果总是和我打印的不一样。但这甚至不是我的问题。 然后,当我键入ENTER时,VS给我一个错误: proj2.2.e
long long someNumber;
...
do{
...
scanf("%d", &someNumber);
...
} while (...);
fprintf(someFile, "%d", someNumber);
我需要读一个包含11个字符的数字。我尝试了所有的扫描和fprintf模式,如%Ld、%lld等,但结果总是和我打印的不一样。但这甚至不是我的问题。
然后,当我键入ENTER时,VS给我一个错误:
proj2.2.exe中0x54A0F365 msvcr120d.dll处的未处理异常:0xC0000005:访问冲突读取位置0x0000000A。
它打开output.c并引用以下行:
while ((ch = *format++) != _T('\0') && charsout >= 0) {
实际上,它在文件中打印了一个错误的数字。但是错误不允许继续程序的工作。发生了什么事?我的错误在哪里?读取long-long的格式是%lld。使用
用同样的格式写出来
fprintf(someFile, "%lld", someNumber);
根据,long类型的正确数据类型说明符为ll。您需要将其与scanf和printf一起使用:
如果按上述方式修复字段说明符无法解决问题,那么代码中的其他地方还有一个问题。有没有原因不能使用std::cin?这样就可以了,不需要猜测命令字符串。你使用C还是C++?您已将这两个问题都标记了出来,但fprintf更像是C语言。@尼尔·柯克,我需要用C语言来完成这项任务。这项任务是由我的teacher@EMBLEM我在用CThen为什么你要用C++来标记?
fprintf(someFile, "%lld", someNumber);
long long someNumber;
scanf("%lld", &someNumber);
printf("%lld", someNumber);