我试图用空格分割一个长字符串,使用sscanf()
.
例如:我需要拆分这个
We're a happy family
进入
We're
a
happy
family
我尝试了以下方法
char X[10000];
fgets(X, sizeof(X) - 1, stdin); // Reads the long string
if(X[strlen(X) - 1] == '\n') X[strlen(X) - 1] = '\0'; // Remove trailing newline
char token[1000];
while(sscanf(X, "%s", token) != EOF) {
printf("%s | %s\n", token, X);
}
前面的代码进入一个无限循环输出We're | We're a happy family
我尝试sscanf()
用 C++替换istringstream
,效果很好。
是什么让 X 保持其价值?它不应该像普通流一样从缓冲区中删除吗?