免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1905 | 回复: 7
打印 上一主题 下一主题

【已解决】使用environ输出环境变量后的cout输出问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-31 09:37 |只看该作者 |倒序浏览
Redhat Linux AS3.0用g++323编译但while循环后再也无法输出信息,以下代码就无法输出后面的“*******”,而用C确没问题。
#include <iostream>
extern char** environ;
using namespace std;
int main()
{
  int i(5);
  char** var=environ;
  while(*var)//while(*var++)
    cout<<*var++<<endl;//cout<<*var<<endl;
  cout<<"************"<<endl;
  return 0;
}

原来让cout输出NULL会导致它无法输出,各位大侠见笑了,呵呵。

[ 本帖最后由 robinchris 于 2006-5-31 10:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-05-31 09:44 |只看该作者
原帖由 robinchris 于 2006-5-31 09:37 发表
Redhat Linux AS3.0用gcc323编译但while循环后再也无法输出信息,以下代码就无法输出后面的“*******”
#include <iostream>
extern char** environ;
using namespace std;
int main()
{
  int i(5); ...


cout<<"************"<<flush<<endl;

论坛徽章:
0
3 [报告]
发表于 2006-05-31 09:49 |只看该作者
感谢你的回复,运行结果一样,还是有问题。我大概明白你加flush的意思,但虽然是行缓冲,但在进程退出的时候它必然要输出,所以是否加flush无所谓。为了验证结果我还是试了一下,会不会是char ** var的问题?

论坛徽章:
0
4 [报告]
发表于 2006-05-31 09:56 |只看该作者
environ??是什么东东

论坛徽章:
0
5 [报告]
发表于 2006-05-31 10:10 |只看该作者
原帖由 balabalacha 于 2006-5-31 09:56 发表
environ??是什么东东

environ is defined in the GNU C library.This variable,of type char**,is a NULL-terminated array of pointers to character strings.Each string contains one environment variable,in the form VARIABLE=value.

论坛徽章:
0
6 [报告]
发表于 2006-05-31 10:13 |只看该作者
C代码没问题,搞不懂的cout  
#include <stdio.h>
extern char** environ;
int main ()
{
char** var;
for (var = environ; *var != NULL; ++var)
  printf ("%s\n", *var);
printf("**********");
return 0;
}

论坛徽章:
0
7 [报告]
发表于 2006-05-31 10:30 |只看该作者
c++里有environ吗?

论坛徽章:
0
8 [报告]
发表于 2006-05-31 10:36 |只看该作者
问题解决,不小心
while(*var)
  cout<<*var++<<endl;
cout<<"********"<<endl;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP