我不熟悉C编程,并且正在学习使用fscanf函数(或scanf系列函数)。我在理解如何使用fscanf函数捕获空白方面遇到一些麻烦。
假设我有以下情况,我打开了一个文件,并且文件仅包含一行字符,并且此文件中唯一一行的布局为:
A_C
A是一个字符序列,它是一个字符串。
_是一个空格,我使用_可以更清楚地显示它。
C是一个字符序列,它是一个字符串。
在这种情况下,_将始终留为空白。 A或C可能是wll的单个空格。
我的问题是,如何使用fscanf函数捕获A和C?不管它们是空格还是实际的字符序列?话虽这么说,如果A是一个字符序列,那么我捕获了这个字符序列,如果A是一个空格,我捕获了这个空格? (同样的想法也适用于C)。
非常感谢您。
答案 0 :(得分:1)
char str[BUFF_SIZE];
fgets(str, sizeof(str), fp);
if (the first char is a space) {
Means A == " ";
}
if (the last char is a space) {
Means B == " ";
}
if (both are spaces) {
done;
} else if (only one is space) {
sscanf(scan for one string, which will be the one that wasn't a space);
} else {
sscanf(scan for two strings, separated by a space);
}
它可以在一行中完成,fscanf非常强大,但我从未尝试过使事情变得过于复杂的事情,其他人可能会更好地解释。但是,这应该可行。