gpt4 book ai didi

c - 读取一个数字,应该算作一个符号

转载 作者:行者123 更新时间:2023-11-30 18:11:01 24 4
gpt4 key购买 nike

我想编写一个程序,使用 scanf() 从标准输入读取数字列表(每行一个)并打印横向图表。

例如,我使用我创建的数据文件:

./p6 < test/p6-testdata

5: #####
40:######################################## 51:###################################################
...
26:########################## 46:##############################################
14:##############

这是我第一次尝试的代码:

int main ()
{

int i; //i is integer and s is symbol
char s = '#'; //s is a character with symbol should be converted

printf ("Enter an integer\n");
scanf ("%d", &i);
i = s; // i is an interger from input should be converted to s

printf ("%d: %d\n", i, s);

return 0;
}

输出:

Enter an integer
35: 35

我不明白为什么或如何?

请帮助我。

最佳答案

简单的方法是从文件中读取数字(下面的示例读取 stdin),然后循环输出填充字符 '#' 的次数,然后输出换行符。只要您从文件中读取有效的整数输入,就重复此操作。

一个简短的例子是:

#include <stdio.h>

#define FILL '#'

int main (void) {

int n;

while (scanf ("%d", &n) == 1) { /* for each valid input */
printf ("%2d: ", n); /* output the number n */
for (int i = 0; i < n; i++) /* loop n times */
putchar (FILL); /* outputting FILL char */
putchar ('\n'); /* tidy up with newline */
}

return 0;
}

示例使用/输出

$ echo "1 3 5 10 12 18 14 11 9 4 2" | ./bin/graphsideways
1: #
3: ###
5: #####
10: ##########
12: ############
18: ##################
14: ##############
11: ###########
9: #########
4: ####
2: ##

或者您的号码:

$ echo "5 40 51 26 46 14" | ./bin/graphsideways
5: #####
40: ########################################
51: ###################################################
26: ##########################
46: ##############################################
14: ##############

您只需添加 FILE* 指针并打开(并验证文件是否已打开),然后再使用 fscanf 而不是 scanf 读取文件>.

如果您还有其他问题,请告诉我。

关于c - 读取一个数字,应该算作一个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com