繁体   English   中英

从stdin读取一个整数(在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 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM