[英]Read an integer from stdin (in C)
我想编写一个C程序,将一个整数作为输入,并输出其平方。 这是我尝试过的。
然而,
./a.out < 3
输出32768,和 ./a.out < 4
也会输出32768。 我哪里错了? 谢谢。
#include <stdio.h>
int main(){
int myInt;
scanf("%d", &myInt);
printf("%d\n",myInt*myInt);
}
看来您想做的是
echo 4 | ./a.out
<的语法是
program < input_file
而| 是
command_with_output | program
在“ <”的右侧,应该有一个包含输入的文件。
试试这个东西:
$ echo“ 3”> foo
$ ./a.out <foo
请阅读以获取更多信息(特别是5.1.2.2节): http ://www.tldp.org/LDP/intro-linux/html/chap_05.html
./a.out < 4
这会尝试读取名为4的文件并将其内容用作a.out
输入。您可以使用任何一种方式进行操作,但是要理解<
运算符并不是要输入您真正输入的字符。
一种方法是:
echo "4" > 4
./a.out < 4
我只是运行您的程序,它的效果很好。 如果希望程序接收整数输入,则应使用argc和argv,而不要使用scanf。
* argc argv的代码:*
#include <stdio.h>
#include <stdlib.h>
int main(int argc , char** argv)
{
int myInt;
myInt = atoi(argv[1]);
printf("%d\n",myInt*myInt);
}
atoi-将char *转换为整数。
如果您想运行该程序然后插入一个整数,那您做对了! 您可以阅读有关atoi的信息
要运行此程序,应从终端编译并运行:
gcc a.c -o a
./a 3
您将收到:
9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.