1.为什么把那句话注释掉以后输入评分会直接跳出循环?
2.gets(movies[i].title) != NULL && movies[i].title[0] != '\0'这个怎么理解,有什么用,两者有什么区别?
#include <stdio.h>
#define Tsize 45
#define FMAX 2
struct film {
char title[Tsize];
int rating;
};
int main() {
struct film movies[FMAX];
int i = 0;
int j;
puts("Enter first movie title:");
while (i < FMAX && gets(movies[i].title) != NULL && movies[i].title[0] != '\0') {
puts("enter your ratings");
scanf("%d", &movies[i++].rating);
// while (getchar() != '\n'){
// continue;
// }
puts("enter next movies title (empty line to stop)");
}
if (i == 0) {
printf("no data entered ");
} else {
printf("here is the list: \n ");
}
for(j=0;j<i;j++){
printf("movies:%s Rating: %d\n",movies[j].title,movies[j].rating);
}
printf("bye");
}