从标准输入中读取一个整数(在 C 中)
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 "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
看起来你想做的是
echo 4 | ./a.out
< 的语法是
program < input_file
鉴于 |是
command_with_output | program
我只是 运行 您的程序,它运行良好。
如果您希望程序接收整数输入,您应该使用 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* 转换为整数。
如果你想运行程序然后插入一个整数,你做对了!
you can read about atoi
为了 运行 这个程序你应该从终端编译和 运行:
gcc a.c -o a
./a 3
您将收到:
9
我想编写一个 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 "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
看起来你想做的是
echo 4 | ./a.out
< 的语法是
program < input_file
鉴于 |是
command_with_output | program
我只是 运行 您的程序,它运行良好。 如果您希望程序接收整数输入,您应该使用 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* 转换为整数。
如果你想运行程序然后插入一个整数,你做对了! you can read about atoi
为了 运行 这个程序你应该从终端编译和 运行:
gcc a.c -o a
./a 3
您将收到:
9