处理c

时间:2018-05-26 19:48:33

标签: c string scanf

我想把这些作为输入

3
abc def
deg fgh
ghdfete fdgtr dhjgg

输出应为

abc def
deg fgh
ghdfete fdgtr dhjgg

我写的代码

#include <stdio.h>
int main(){
        int t;
        scanf("%d",&t);
        char a[100];
        while(scanf("%[^\n]%*c",a) == 1){
            printf("%s\n",a);
            --t;
            if(t == 0)
                break;
        }
        return 0;
}

不打印任何东西。请帮忙。

1 个答案:

答案 0 :(得分:1)

考虑将fgets用于所有输入。

#include <stdio.h>
int main(){
    char value[50] = "";
    int t;
    int result = 0;
    char a[100];

    do {
        printf ( "enter an integer\n");
        if ( fgets ( value, sizeof value, stdin)) {
            if ( 1 != ( result = sscanf ( value, "%d", &t))) {
                if ( EOF == result) {
                    fprintf ( stderr, "found EOF\n");
                    return 0;
                }
            }
        }
        else {
            fprintf ( stderr, "problem fgets\n");
            return 0;
        }
    } while ( result != 1);

    printf ( "enter text\n");
    while( fgets ( a, sizeof a, stdin)) {
        printf("%s\n",a);
        --t;
        if(t == 0)
            break;
    }
    return 0;
}