我试着在一个文件中读到以下三行字:
水果|苹果|柠檬

char *type, *type2, *type3;

使用此:fscanf(file, "%[^|]|%[^|]|%s", type, type2, type3);
但我有段错。有人能帮忙吗?

最佳答案

您需要确保为结果分配一些空间。从您的示例中可以看出,type、type2和type3都是空的。您需要将它们指向堆或堆栈上的某个存储,例如:
字符类型[64];
不过,请注意这里的缓冲区溢出。有关如何避免这种情况的建议,请参见this other question

关于c - 读取以“|”分隔的单词时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16453992/

10-09 06:35