当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 16:26 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
这个程序:
/* Read a number series and print it reversed.
Written by:
Date:
*/
#include <stdio.h>

int main (void)
{
// Local Declarations
int readNum;
int numbers[50];

// Statements
printf("You may enter up to 50 integers:\n");
printf("How many would you like to enter? ");
scanf ("%d", &readNum);

if (readNum > 50)
readNum = 50;

// Fill the array
printf("\nEnter your numbers: \n");
for (int i = 0; i < readNum; i++)
scanf("%d", &numbers[i]);

// Print the array
printf("\nYour numbers reversed are: \n");
for (int i = readNum - 1, numPrinted = 0;
i >= 0;
i--)
{
printf("%3d", numbers[i]);
if (numPrinted < 9)
numPrinted++;
else
{
printf("\n");
numPrinted = 0;
} // else
} // for
return 0;
} // main

/* Results:
You may enter up to 50 integers:
How many would you like to enter? 12

Enter your numbers:
1 2 3 4 5 6 7 8 9 10 11 12

Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3
2 1
*/

longlovec@LongloveC-laptop:~/文档/《C程序设计软件工程环境》/书中程序$ c99 -Wall
p294_8-3_逆序打印输入.c
longlovec@LongloveC-laptop:~/文档/《C程序设计软件工程环境》/书中程序$ ./a.out
You may enter up to 50 integers:
How many would you like to enter? 12

Enter your numbers:
1 2 3 4 5 6 7 8 9 10 11 12

Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3
longlovec@LongloveC-laptop:~/文档/《C程序设计软件工程环境》/书中程序$ 程序$

可以看到第二行没有被打印出来。
而且有一个奇怪的现象,这里非常不对劲:《C程序设计软件工程环境》/书中程序$ 程序$
如果此时输入一个字符,那么就会这样:/《C程序设计软件工程环境》/书中程序$ d 序$ 。
这时候才完全消失:《C程序设计软件工程环境》/书中程序$ ddddd 。
此时再删除这几个d,就恢复正常了。

使用gdb调试,但gdb中第一行之后的printf语句确实执行了。
终端上却显示不出来。

到Windows下用Gcc for Windows(MinGW)编译之后运行反而正常。

这种问题至此我已经遇到过2次。

第一次是Debug时使用printf语句输出某个变量的值,但是这条printf语句看起来却和被注释掉一样没有起到任何作用。

第二次就是上述的,明明在gdb上printf语句已经执行,但是第二行却显示不出来。

而上述问题在Windows下使用MinGW从未发生过,第二次的程序在Windows下使用MinGW也正常。

感觉非常诡异,望高人相助。


最后由 宇智波殤 编辑于 2009-08-01 18:08,总共编辑了 4 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 17:15 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 17:28 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
我这里正常
无法重现


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 17:51 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 17:59 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:07 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试

已经试过了,只是多了一个空行。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:19 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试

已经试过了,只是多了一个空行。


你试下改成重定向
./a.out > out.txt


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:27 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试

已经试过了,只是多了一个空行。


你试下改成重定向
./a.out > out.txt

过了10多分钟了,没有反应。是否正常?
这时候out.txt打开后也什么都没有。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:32 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试

已经试过了,只是多了一个空行。


你试下改成重定向
./a.out > out.txt

过了10多分钟了,没有反应。是否正常?
这时候out.txt打开后也什么都没有。


没有反应?怎么可能... 你输入了足够的数字了么


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:36 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
BigSnake.NET 写道:
宇智波殤 写道:
dbzhang800 写道:
引用:
Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3

可以看到第二行没有被打印出来。

不妨把你3后面那一行贴出来,你只贴这一行,别人肯定看不到你的第二行了,贴出来大家或许都能看到了

谢谢你的提醒。
已经贴出来了。


最后多输出一个 \n 试试

已经试过了,只是多了一个空行。


你试下改成重定向
./a.out > out.txt

过了10多分钟了,没有反应。是否正常?
这时候out.txt打开后也什么都没有。


哦,我还以为卡了呢。
原来让我输入数字,那个提示原来也被输出到那个文件里了啊,第一次用这个命令,不好意思。
文件内容正常:
You may enter up to 50 integers:
How many would you like to enter?
Enter your numbers:

Your numbers reversed are:
12 11 10 9 8 7 6 5 4 3
2 1


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 遇到了非常诡异的问题
帖子发表于 : 2009-08-01 18:56 

注册: 2009-07-29 18:14
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
恩~知道了。
可能是终端有点问题吧,没有显示出来。
但重定位后就可以看到正确结果了。
非常感谢BigSnake.NET,也谢谢dbzhang800。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译