如何在C中使用系统调用读取并存储文件的每一行

rn0zuynd  于 2022-12-22  发布在  其他
关注(0)|答案(1)|浏览(104)

我试图从一个文件中读取每一行,并将这些值存储在一个指针数组中。我是C新手,很抱歉我的代码杂乱无章。
我试着逐个字符读取,将它们放入字符串中,然后将该字符串"存储"在指针数组中,因为这看起来是一个简单的解决方案,但我在内存分配方面遇到了麻烦。
下面是我的代码:

char *files[100];
char buffer;

int r, i, j;
char temp[100];

int fd=open(argv[1], O_RDONLY);

i=j=0;
while(read (fd, &buffer, 1) > 0) {
        
        if(buffer != '\n') {
            temp[i] = buffer;
        }
        else{
           
            files[j]=temp;
            j++;
            i=0;

            continue;
            
        }
        i++;

    }
brqmpdu1

brqmpdu11#

我解决了这个问题,谢谢你的帮助。我必须为每一行分配内存,否则我的文件向量总是指向同一个缓冲区。我只是在将temp的值赋给文件之前添加了下面的行:
文件[j] =(字符 *)malloc(字符的大小 * 字符串长度(临时);

相关问题