【发布时间】:2017-11-05 10:36:12
【问题描述】:
我有一个包含 2-3 行的文件,我想将每一行存储在一个 char* 变量中,然后将其转换并存储到其他适当的变量中。
不是在 unix 中,只是在 c 中,有一个 fscanf(%d,%s,%s, 1,2,3);就是这样,但在 unix 中有点奇怪。
例如:a abc 12 12
将其存储在char msg[20]中,然后msg[20]将存储在4个变量中,一个char,一个char*和两个整数。怎么办?
到目前为止我得到了什么:
int ret_in, in1,file;
char buffer1[BUF_SIZE];
int i =0;
char fn[5] = "file";
char msg[20];
file = open(fn,O_WRONLY|O_CREAT,0644);
//msg = "test";
while(((ret_in = read (file, &buffer1, BUF_SIZE)) > 0))
{
for(i; i<ret_in; i++)
{
if(buffer1[i]!='\n')
msg[i] = buffer1[i];
}
}
printf("%s", msg); //TEST: check msg
close(file);
它可以很好地存储在 msg 变量中,但是如果它由 4 个“项目”组成,我想存储在不同的变量中,我怎样才能有效地做到这一点?
【问题讨论】:
-
你为什么使用
open()?为什么不使用fopen()和fgets()获取输入行,并使用sscanf()解析该行? -
对不起。我不明白您想将整数放入文件中的整数变量、char* 中的字符串和 char 中的字符?这是你的意思吗?
-
@DavidBowling 你能给我一个问题中的代码示例吗?
-
您是否正在尝试读取以只写模式打开的文件?还是我错过了什么?