gpt4 book ai didi

c - C中字符指针数组的数据输入

转载 作者:太空狗 更新时间:2023-10-29 16:12:05 24 4
gpt4 key购买 nike

这是我在这里提出的第一个问题,所以如果我没有遵循这里的格式规则,请原谅我。我正在用 C 编写一个程序,它需要我从文件中读取几行。我试图将每一行放入一个 cstring。我已经声明了一个名为 buf 的二维字符数组,用于保存文件中的 5 行中的每一行。相关代码如下所示

#include <stdlib.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <sys/un.h> /* UNIX domain header */

void FillBuffersForSender();

char buf[5][2000]; //Buffer for 5 frames of output

int main()
{

FillBuffersForSender();

return 0;
}

void FillBuffersForSender(){
FILE *fp;
int line = 0;
char* temp = NULL;
size_t len = 0;
ssize_t read;
fp = fopen("frames.txt", "r");
printf("At the beginning of Fill Buffers loop.\n");
//while ((read = getline(&temp, &len, fp)) != -1){
while(line < 5){
//fprintf(stderr, "Read in: %s\n", temp);
fgets(temp, 2000, fp);
strcpy(buf[line], temp);
line++;
fprintf(stderr, "Line contains: %s.\n", temp);
temp = NULL;
}
while(line != 0){
fprintf(stderr, "Line contains: %s.\n", buf[line]);
line--;
}

}

线

strcpy(buf[line], temp);

导致段错误。我已经尝试了很多方法,但似乎无法让它发挥作用。我不习惯 C,但被指派在其中编写一个双向滑动窗口协议(protocol)。我一直遇到这样的 super 基本问题!如果这是在 C++ 中,我已经完成了。任何人都可以提供的任何帮助都是不可思议的。谢谢你。

最佳答案

temp 需要指向分配给 fgets 可以写入的缓冲区。

关于c - C中字符指针数组的数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307271/

24 4 0
文章推荐: c - 字符串中的垃圾字符
文章推荐: java - 如何在不排序的情况下使用 Comparator 进行升序、降序