我有一个字符流作为输入,没有任何空格,我必须使用scanf()
将它们存储在字符数组中。
#include <stdio.h>
#include <iostream>
int main() {
int n,q,l,r,k;
scanf("%d",&n);
char A[n];
scanf("%d",&q);
for(int i=0; i<n; i++) {
scanf("%c",&A[i]);
}
for(int i=0; i<n; i++) {
printf("%c",A[i]);
}
return 0;
}
以上循环不起作用。
答案 0 :(得分:0)
只有在声明(并且可能已初始化)n
时,循环才会起作用,否则编译会抱怨n
尚未声明。
然后,当程序运行时,系统会要求您插入n个字符。请注意,您按下的每个键都将被解释为char
,因此,如果n = 10:
1 2 3 4 5
10个字符,因为您输入了5个数字,4个空格和一个换行符号'\ n',以便为您的程序提供输入。
所以,如果你需要用10个数字填充你的数组,比如从0到9,你需要写:
0123456789
然后按Enter键。请注意,通过这种方式,您可以提供11个字符,10个数字和新行,但由于循环的限制,只会读取前10行。
注意:只要您使用char
建议:由于您使用的是C ++,请不要使用C I / O库stdio.h
,而是使用C ++文件:iostream