Barankin,
嗯......这是一个有趣的行为。
两种标准输入间接技术对我来说都是有用的(如预期的那样)......
landkrc@lasun175:/home/user/landkrc/crap
$ cat lg.c
#include
#include
#define USERNAME_MAX_LEN 36
#define PASSWORD_MAX_LEN 36
int main(int argc, char *argv[])
{
printf("Hello, world\n");
char username[USERNAME_MAX_LEN];
char password[PASSWORD_MAX_LEN];
*username = 0;
*password = 0;
scanf("%s %s", username, password);
printf("username-len: %ld, password-len: %ld\n", strlen(username), strlen(password));
return 0;
}
landkrc@lasun175:/home/user/landkrc/crap
$ cc -V
cc: Sun C 5.8 2005/10/13
usage: cc [ options] files. Use 'cc -flags' for details
landkrc@lasun175:/home/user/landkrc/crap
$ cc -o lg lg.c
landkrc@lasun175:/home/user/landkrc/crap
$ echo '12345678 1234567890
> ' >data.txt
landkrc@lasun175:/home/user/landkrc/crap
$ lg
username-len: 8, password-len: 10
landkrc@lasun175:/home/user/landkrc/crap
$ cat data.txt | lg
username-len: 8, password-len: 10也许您只需要在credentials.data文件末尾添加行尾字符?
干杯。基思。