void main(int argc, char * argv[])
{
FILE* inFile = NULL;
char * bufferFromStdin;
char buf[100];
printf("Enter something:\n");
scanf("%s", buf);
printf("First scan from stdin is: %s\n", buf);
if(buf == "THIS" || buf[0]=='T')
{
printf("THIS found first\n");
}
else {printf("Not Found first\n");}
printf("Enter something again:\n");
scanf("%s", bufferFromStdin);
printf("Second scan from stdin is: %s\n", bufferFromStdin);
if(bufferFromStdin == "THIS")
{
printf("THIS found second\n");
}
else {printf("Not Found second\n");}
}//main
给我输出:
./test < testinput.txt
输入一些东西:
第一次从标准输入扫描是: 第一次
找到
这个 再次输入:
第二次从标准输入扫描是:(null)
第二个没有找到
testinput.txt 有一行文本“THIS”
这
就是我在
运行
程序
时
得到
的
结果
使用任何一种输入法时,为什么输入无法保存到 char* 中,我将如何解决这个问题?我需要通过键盘从标准输入获取输入并重定向 I/O。我认为这与 malloc();
谢谢您的帮助。