我的理解是fgets()返回输入的字符串参数,但是,
我收到"错误:从类型'char*'"分配类型'char [101]'时出现不兼容的类型,
那么,为什么变量'line'被认为是'char [101]'而不是'char*'?
char line[101] = "";
while (feof(filePtr) == 0){
line = fgets(line, 101, filePtr);
strcpy(strPtr, line);
}
Run Code Online (Sandbox Code Playgroud)
长话短说:你不能分配给一个数组,它不是一个可修改的左值.您需要定义另一个指针来保存返回值.
为什么变量
line被认为是类型char[101]而不是类型char *
在你的情况下,line不认为是类型的char [101],它是真的.在某些情况下,数组会向下衰减到指向数组中第一个元素的指针,但这并不会改变数组变量本身属于数组类型的事实.
那就是说,你过度了.您不需要在那里存储返回值.您可以检查它NULL并完成.无论如何都fgets()将扫描值存储在line数组中.这首先是传球line(以及它的大小).
那就说,请看为什么"while(!feof(file))"总是错的?
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |