Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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++ 分离字符串和整数时的sscanf_访问冲突_C++_Scanf - Fatal编程技术网

C++ 分离字符串和整数时的sscanf_访问冲突

C++ 分离字符串和整数时的sscanf_访问冲突,c++,scanf,C++,Scanf,无论我使用char tst[20]=“aaaa 123\n”或char*tst=“aaaa 123\n”,, 它总是显示访问冲突。 我需要把一个字符串和一个整数分开。但是为什么会发生这种情况?要求%c、%s和%[有两个参数,第二个参数是传递的缓冲区的大小。以下参数应该可以工作: char a[200] = { 0 }; char tst[20] = "aaaa 123\n"; int i; sscanf_s(tst, "%s %d",a, &i); printf("reasul

无论我使用
char tst[20]=“aaaa 123\n”
char*tst=“aaaa 123\n”,,
它总是显示访问冲突。
我需要把一个字符串和一个整数分开。但是为什么会发生这种情况?

要求
%c
%s
%[
有两个参数,第二个参数是传递的缓冲区的大小。以下参数应该可以工作:

    char a[200] = { 0 };

char tst[20] = "aaaa 123\n";
int i;
sscanf_s(tst, "%s %d",a, &i);
printf("reasult:%s %d", a,i);
%c
%s
%[
需要两个参数,第二个参数是传递的缓冲区的大小。以下参数应适用:

    char a[200] = { 0 };

char tst[20] = "aaaa 123\n";
int i;
sscanf_s(tst, "%s %d",a, &i);
printf("reasult:%s %d", a,i);

阅读此文了解有关如何正确使用它的更多信息。
sprintf\u s
让我有点惊讶,它在溢出时崩溃了程序,而不是像
snprintf
那样截断。
sscanf\u s
看起来也有同样的行为。如果发现程序意外死亡,请阅读此文了解更多信息n关于如何正确使用它。
sprintf_s
让我有点惊讶,它在溢出时崩溃了程序,而不是像
snprintf
那样截断。
sscanf_s
看起来也有同样的行为。如果你发现程序意外死亡,请看一看。我想知道OP为什么使用
sscanf_s
对于sscanf,如果他不理解差异?IIRC,MSVC积极劝阻不安全(无缓冲区大小)这些函数的版本。您必须使用特定的定义重新启用它们。我想知道,如果OP不理解差异,为什么OP使用
sscanf_s
而不是
sscanf
?IIRC,MSVC积极阻止这些函数的不安全(无缓冲区大小)版本。您必须使用特定的定义重新启用它们。