【发布时间】:2016-09-21 15:57:35
【问题描述】:
我想将“char 数据类型值”存储在一个数组中,但它不起作用。
首先,我尝试使用“gets” 但它给了我一个运行时错误。 代码是这样的
int tmp = 0;
char arr[100] = { 0, };
while (arr[tmp]!=NULL)
{
gets(arr[tmp]);
tmp++;
}
for (int rtmp = 0; rtmp < a; rtmp++)
printf("%s ", arr[rtmp]);
return 0;
在第二种方式中,我使用的是“scanf”,但我无法存储“char 数据类型(它应该是多个字符,如字符串)”,但只有一个字符可用。(我试过 %s ,但它不起作用) 另外,它不会打印数组的最后一个值。
int a = 0;
scanf("%d", &a); //determine how much I input values
int tmp = 0;
char arr[100] ={ 0 , };
for(tmp=0;tmp<a;tmp++)
{
scanf("%c ",arr[tmp]);
fflush(stdin);
}
for (int rtmp = 0; rtmp < a; rtmp++)
printf("%c ", arr[rtmp]);
return 0;
对我来说最“相同”的是 不通知“a”值(“a”表示我输入了多少值) 并将“字符值”存储在数组中..
我该如何解决这个问题? 提前致谢!感谢您的帮助:)
【问题讨论】:
-
scanf("%c ",arr[tmp]);-->scanf("%c", &arr[tmp]); -
在第一种情况下,您有一个
char数组,但您尝试将 元素 视为(指向)char数组的指针。 -
fflush(stdin);调用未定义的行为。您不能刷新输入流。