我应该写一个简单的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);
}
}
答案 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();
}