Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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 fprintf错误和未处理的异常_C_Visual Studio_Visual Studio 2013 - Fatal编程技术网

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);