【发布时间】:2019-10-24 21:04:54
【问题描述】:
所以程序除了其中一部分之外都可以工作。
我真的不明白为什么它没有输出正确的东西。我还必须使用 strtok、strcmp 和 fgets 函数。所以我不能改变这些。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char a[256];
while(x==0){//this will loop until the exit cammand is given
int y = (strcmp(fgets(a, 256, stdin), "exit\n"));
char* token = strtok(a, " ");
int numOfTokens = 0;
if (y == 0){
exit(0);
}
else{
printf("Line read:%s\n", a);
printf("Token(s):");
while(token != NULL){
numOfTokens +=1;
printf("\n%s", token);
token= strtok(NULL, " ");
}
printf("%i token(s) read\n", numOfTokens);
}
}
return 0;
}
所以一切都是从 linux 终端输入的。输出应该是:
`h e l l o//input
//output as followed
Line read:h e l l o
Token(s):
h
e
l
l
o
5 token(s) are read`
但是当我做的事情搞砸的时候是:Line read:h
我将如何使它打印用户输入的整行
【问题讨论】:
-
请缩进你的代码 - 它几乎不可读。
-
@pmg 之后打印?
标签: c