C阵列循环错误

时间:2015-03-05 02:38:18

标签: c arrays string gets

我应该写一个简单的C程序来读取一个整数并循环n次来处理字符串,但是如果我使用scanf整数,第一个循环会自动传递一个空字符串,但如果我使用一个常量编号循环正常工作。有人请向我解释发生了什么。

#include <stdio.h>
#define MAX 80

int main(){
    char sentence[MAX];
    int n, i;
    scanf("%d", &n);
    for(i=0; i<3; i++){//it loops with empty string automatically if I replace 3 with n
        gets(sentence);
        printf("%s\n", sentence);
    }
}

1 个答案:

答案 0 :(得分:0)

试试此代码

    #include<stdio.h>
    #include<conio.h>
    #define MAX 80
    void main()
    {
    char sentence[MAX];
    int n,i;
    clrscr();
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf(" %99[^\n]",sentence);
    printf("\n%s\n",sentence);
    getch();

    }