在一个文本文件中,我有一个类型:用户名密码的格式,我如何将它放在三个不同的变量中,以便变量类型在变量类型中,用户名在用户名中,密码在C中的密码中?
示例:
Admin:Username Password
如何制作?
Type:Admin
User:Username
Pw:Password
下面是我的代码:
int ch;
int i = 0;
while ((ch = fgetc(fp)) != EOF) {
// Check for the colon character
if (ch == ':') {
// We have reached the end of the type string
// Move to the next variable
i = 0;
continue;
}
// Check for the space character
if (ch == ' ')
{
// We have reached the end of the username string
// Move to the next variable
i = 0;
continue;
}
// Store the character in the appropriate variable
if (i < 50) {
if (type[0] == 0) {
type[i] = ch;
} else if (username[0] == 0) {
username[i] = ch;
} else {
password[i] = ch;
}
i++;
}
}
2条答案
按热度按时间to94eoyn1#
考虑到您在问题中发布的初始要求,文本文件应包含以下行:
管理员:用户名和密码
将Admin存储在变量
type
中,将Username存储在变量username
中,类似地将Password存储在变量Password
中。你可以声明一个
structure
,类似于:正如@IngoLeonhardt评论的那样,
strtok()
或strchr()
可用于解析从文本文件读取的行,您可以参考下面的简单示例代码片段来理解并进一步改进逻辑。附言:上面的实现可能有一些缺陷/bug,请把上面的代码作为一个例子来考虑。
3mpgtkmj2#
首先,可以使用函数
fgets
从文件中读取一行字符串,然后使用函数strchr
查找字符串中的分隔符':'
和' '
,找到后,可以使用printf
打印各个子字符串。下面是一个例子:
对于输入
该程序具有以下输出: