我有这个循环:
while (fscanf(file, "%s", word) != EOF)
但是 word
这里是 const char *
而不是 char *
那么我应该如何更改 %s
?
最佳答案
由于 scanf
系列用于读取输入,因此期望提供的指针指向可写的内容。 const char *
指针不能用于修改它指向的内容(即使目标实际上是可写的),所以它绝不应该出现在 scanf
中以接收读取数据。
您还应该注意,word
在调用 scanf
之前必须指向一些有效的可写内存,否则会导致未定义的行为。
关于c - 如何格式化在 C 中指定一个 const char *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025120/