1
我有一个文件<int><string><int>
,我将它保存到一个缓冲区,然后使用管道读取它。该字符串是字母数字。C - 如何阅读sscanf <int><string><int>?
FILE *est = fopen ("file.txt","r");
fgets(buffer1, 256, est);
write(fd[i][1], buffer1, BUFFERSIZE);
.
.
.
int r = read(fd[i][0], buffer1, BUFFERSIZE);
sscanf(buffer1,"<%d><%s><%d>", &a, b, &c);
的问题是,当我读到的字符串时,它“吃”的><%d>
,并解释一切作为一个字符串。例如,如果我有<10><5jj8j><10>
变量将是a=10
,b= "5jj8j"><10>
和c
到任何它初始化。
如何使用sscanf
读取<>
之间的字符串对不对?
感谢您的答案。
另一个建议是当你已经打开一个文件时,使用'sscanf'的'fscanf' instad。你可能想'fdopen'它来检索'FILE'指针并使用'fscanf'来读取。或者先使用'getline'来读取整行,然后调用'sscanf'。 –