c - 如何格式化在 C 中指定一个 const char *?

标签 c pointers format-specifiers

我有这个循环:

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/

相关文章:

c - 数据包中的奇怪字符

c++ - 跨类的静态字符数组行为异常

python - 如何在两个不同进程之间通过python3中的指针地址共享数组?

c - 使用 sigaction 将信号处理行为重置为默认值

c++ - 奇怪的初始化优化

printf 中 double 的正确格式说明符

c - 在地址中使用先前参数时 Sscanf 未初始化的值

c - 这个输出的对应输入是什么?

c - 尝试安装 valgrind 但卡在 make valgrind,怎么办?

objective-c - Objective-C 中的 @ 运算符是否与 C 中的 & 运算符相同?