0
char in[20];
char out[20];
for(int i=0; i < nEdges ;i++){
char str[50];
fgets(str, 50, stdin);
char *result = NULL;
result = strtok(str, " ");
int count = 0;
int i = 0;
char name[2][20];
while(result != NULL){
strncpy(name[i],result,20);
result = strtok(NULL, " ");
count++;
i++;
}
if(count > 2){
errorMsg2();
}else{
i = strlen(name[1]);
for(int x=0; x < i ;x++){
if(name[1][x] == '\n')
name[1][x] = '\0';
strncpy(out,name[0],20);
strncpy(in,name[1],20);
}
嗨,我想读一行并验证,而只有两个元素,否则错误消息。这一切都在for循环中,当我执行程序时,fgets从未要求我输入。 fgets是否在循环中工作?fgets内循环C
如果您正在等待某种提示, ''不会“要求你”输入,它只是阻止等待它 – jstanley 2011-05-12 15:12:27
由于输入验证限制,我用fgets方法替换了scanf – Jono 2011-05-12 15:16:37
'fgets()'不会提示你;程序应该坐在那里等待你需要输入输入,当然,如果nEdges为零或负数,循环将永远不会输入 – 2011-05-12 15:24:40