我有这个循环:
while (fscanf(file, "%s", word) != EOF)
但是word
是const char *
而不是char *
那么我应该如何更改%s
?
答案 0 :(得分:4)
由于scanf
系列用于读取输入,因此可以预期所提供的指针指向可写的内容。 const char *
指针不能用于修改它指向的内容(即使目标实际上是可写的),因此绝不应该出现在scanf
中以接收读取的数据。
您还应注意,word
必须在指向scanf
的调用中使用之前指向一些有效的可写内存,否则将导致不确定的行为。