我在处理 C 中的指针时遇到了一些麻烦。
我的代码从文本文件中加载一大串字符
1378251369.691375 84:1b:5e:a8:bf:7f 68:94:23:4b:e8:35 100
1378251374.195670 00:8e:f2:c0:13:cc 00:11:d9:20:aa:4e 397
1378251374.205047 00:8e:f2:c0:13:cc 00:11:d9:20:aa:4e 397
1378251374.551604 00:8e:f2:c0:13:cc 00:11:d9:20:aa:4e 157
1378251375.551618 84:1b:5e:a8:bf:7c cc:3a:61:df:4b:61 37
然后将每一行复制到一个数组中(fullinfo[200][BUFSIZ])。
我然后尝试评估最后两条信息并将它们放入自己的数组中 例如
cut2line[0] = 68:94:23:4b:e8:35 100
cut2line[1] = 00:11:d9:20:aa:4e 397
为此我尝试了 strcpy 和 memcpy
fullinfo[200][BUFSIZ];
char cutline[BUFSIZ];
char cut2line[BUFSIZ];
while( fgets(line, sizeof line, pi) != NULL) {
strcpy(fullinfo[infoline], line);
strcpy(cutline,fullinfo[infoline]);
memcpy(cut2line,*cutline[25],100);
printf("%s",cutline);
infoline ++;
}
两者都给其中一个
invalid type of argument of unary '*' (have 'int')
或涉及错误指针类型的内容。
感谢任何帮助。
编辑以澄清:cutline 包含输入文件中的整行,这是正确的,但是当我尝试将行的第二部分复制到它自己的数组中时,我得到了错误
最佳答案
while( fgets(line, sizeof line, pi) != NULL) {
strcpy(fullinfo[infoline], line);
strcpy(cutline,fullinfo[infoline]);
//memcpy(cut2line,*cutline[25],100); This line is what's causing your issue I think.
memcpy(cut2line,&cutline[25],100); //Use an &
printf("%s",cutline);
infoline ++;
}
关于将二维数组中的字符串复制到一维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898066/