c - 读取一个数字,应该算作一个符号
问题描述
我想制作一个程序,该程序使用从标准输入中读取数字列表(每行一个)scanf()
并打印横向图。
例如,我使用了我创建的数据文件:
./p6 < 测试/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
我不明白为什么或如何?
请帮我。
解决方案
打印 35:35 的原因是因为您首先将 # 复制到 i 中,然后将 s 和 i 都打印为整数 (%d)。# 在 ascii 中是 35。
打印字符的说明符是 %c。
推荐阅读
- java - 井字游戏每次都会导致平局
- python - 在 PyQt 中的 QMovie 前面添加一个具有固定位置的 QLabel
- windows - 如何将 OsString 传递给 Win32 API 调用
- javascript - 如何将动态呈现的内容传递给绑定处理程序?
- reactjs - 重新加载页面时丢失道具状态数据
- c# - 如何在 ASP.NET Core 中更改 Swagger 的 Json?
- angular - Angular 单元测试:TypeError:env.catchExceptions 不是函数
- php - 如何从范围中获取间隔
- vim - fzf.vim 中的颜色
- javascript - 为什么打字稿会生成 chrome 不接受的 javascript?