在字符数组中输入字符流

时间:2017-09-16 08:52:41

标签: c arrays

我有一个字符流作为输入,没有任何空格,我必须使用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;
}

以上循环不起作用。

1 个答案:

答案 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