从标准输入中读取一个整数(在 C 中)

Read an integer from stdin (in C)

我想编写一个 C 程序,将整数作为输入,并输出其平方。这是我试过的。

然而,

我哪里错了?谢谢

#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