【发布时间】:2020-04-06 14:01:29
【问题描述】:
您好,我正在尝试以下列形式读取用户的输入:
param1,param2,param3
我通过fgets 得到的。问题是我似乎无法理解为什么它没有,在第一个逗号之后它向我展示了一种奇怪的行为。
例如:
char input[60];
char a1, a2, a3, a4;
printf("Enter info");
fgets(input, 60, stdin);
sscanf(input,"%[^,\n] %[^,\n] %[^,\n] %[^,\n]", &a1, &a2, &a3, &a4);
printf("%c %c %c %c", a1, a2,a3, a4);
如果我输入例如a,b,c,d
我得到:a �
我在这里错过了什么?
【问题讨论】:
-
%[...]将读入一个需要结束 '\0' 字符的字符串。将您的变量设为char a[2]。另外我认为您的sscanf格式字符串与您的输入不匹配,因此您的变量实际上包含一些未初始化的垃圾数据。