我试图逐行读取文本文件并打印前17个字符。

FILE *devices;
devices = NULL;
devices = fopen("devices.txt", "r");

char deviceaddr[17];
char addr[17];

char line[1024];

while (fgets(line,1024,devices) != NULL)
{
    fscanf(devices,"%s", deviceaddr);

    printf("%s\n", deviceaddr);
}

fclose(devices);

第一行的输出应该00:07:80:4C:0E:EE,但它给出6

最佳答案

输出不可能"00:07:80:4c:0E:EE",因为
这将导致未定义的行为,因为缓冲区
溢出字符串需要18个字节,但您只提供
17岁。你不应该在没有
指定长度。
你看完后给我打电话
一行一行;如果你逐行阅读,你想使用
"%s"在你读过的那行。

关于c - 无法从c中的文件读取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15070121/

10-11 11:24