在UNIX系统下使用IO库程序

在上一篇文章中,我们已经可以在UNIX下编译一个hello world 程序了。今天介绍UNIX系统下,如何在程序中使用IO库。

主体流程分为以下三步:(代码参考的是:<<C++ Primer>>)

第一步:新建文件,并命名为“Progr1.cpp”

第二步:在Progr1.cpp中写好main函数,并使用cin ,cout 这两个IO库函数。代码如下

#include <iostream>//告诉编译器要使用 iostream 库。尖括号里的名字是一个。头文件。程序使用库工具时必须包含相关的头文件。

int main()
{
    std::cout<<"enter two numbers:"<< std::endl;
    int v1,v2;
    std::cin>>v1>>v2;
    std::cout<<"The num of"<<v1 <<"and"<<v2<< "is" <<v1 + v2<<std::endl;
    return 0;
}

上途代码中有两点值得注意(cin 和cout 的用法及效果比较简单,这里就不在这里缀叙了)。第一点:#include <iostream> 。其作用已经在注释中说明

另外一点值得注意的是:程序中使用

std::cout 和 std::endl,而不 是 cout 和 endl。前缀 std:: 表明 cout 和 endl 是定义在命名空间 std 中 的。使用命名空间程序员可以避免与库中定义的名字相同而引起无意冲突。

第三步:使用命令编译。

这里碰到了一点跟书上不太一样的问题:

一开始,我输入命令:

llbt$ cc Progr1.cpp

报错如下:

Undefined symbols for architecture x86_64:
  "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in Progr1-74ce42.o
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in Progr1-74ce42.o....

如何解决这种情况?明明是按着教科书一步一步来的,却又报错了。这么难学,还是放弃吧。。。这是初学者容易抱有的心态,其实这种问题,在工作中是经常碰到的。

解决问题的思路很简单,你要相信你不是第一个碰到类似问题的人。所以,我们只需要百度/google即可。

大致分析一下出错的原因可能是:编译器不识别这个IO 库.

于是我们可以搜“unix 下使用 iostream”

很快我们就找到了可以解决问题的答案:我们需要通过命令行 告诉编译器,程序需要使用库stdc++。命令如下:

llbt$ cc -lstdc++ Progr1.cpp

出现这个问题的原因是:标准 iostream 类只能用于标准模式下,且iostream包含在 C++ 标准库 libCstd 中.

好了, IO库的使用介绍完了。

问题分析参考网址:http://docs.oracle.com/cd/E19205-01/821-0389/bkaki/

http://zhidao.baidu.com/link?url=p8T1CBBIpn3FZqZq-ktHkUNJHVFzi-ekOdOigl_COsshUeqCpSiRCsvAO3Zc0uA-4V6oY4QabJxHSYkRxPFF3q

时间: 2024-10-05 04:33:12

在UNIX系统下使用IO库程序的相关文章

在UNIX系统下联合编译flex 和bison 程序

flex 是一款词法解析开程序,而bison是一款语法解析开源程序.他们配合使用,就可以完成某些计算机脚本语言的语言的解析,如sql.这次我主要介绍flex 和bison在unix系统下的编译. 先看flex 代码: %{ #include "fb1-5.tab.h"//该文件由bison后面的bison生成.主要定义了token 的值.和yylval变量 %} %% "+" { return ADD; }//匹配上“+”,就返回token ADD,yylval 此

2 Unix 系统下的 Nginx + PHP

Unix 系统下的 Nginx 'x' 来表示版本号,请根据实际情况将 'x' 替换为对应的版本号. 1 安装 Nginx. 2 PHP 源代码: tar zxf php-x.x.x 3 配置并构建 PHP.在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等. 运行 ./configure --help 命令来获得完整的可用选项清单. 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置. cd ../php-x.x.x ./configure --enable-

Unix 系统下的 Nginx 1.4.x

Unix 系统下的 Nginx 1.4.x 本文档包括使用 PHP-FPM 为 Nginx 1.4.x HTTP 服务器安装和配置 PHP 的说明和提示. 本指南假定您已经从源代码成功构建 Nginx,并且其二进制文件和配置文件都位于 /usr/local/nginx. 如果您使用其他方式获取的 Nginx,请参考» Nginx Wiki 并对照本文档完成安装. 本文档仅包含 Nginx 服务器的基本配置,它将通过 80 端口提供 PHP 应用的处理能力. 如果您需要超出本文档范围的安装配置指导

windows系统下c语言暂停程序

原文:windows系统下c语言暂停程序 windows系统下,很多C语言初学者的调试时,往往没看到结果程序就退出了,据我所知的方法主要有以下几种 方法一: #include int main() { system("pause");//利用了DOS命令,按任意键继续 return 0; } 方法二: #include int main() { getchar();//须按回车键结束,不是任意键 return 0; }

MD5做为文件名。机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧。

可以采用机器(电脑)唯一码 + 上传IP + 当前时间戳 + GUID ( + 随机数),然后MD5做为文件名.机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧. //获取电脑的CPU信息function OnlyU(){        $a = '';        $b = array();        if(function_exists('exec')){                if(mailto:[email protected]

Unix环境之标准IO库

UNIX的文件IO都是针对文件描述符的,而标准IO的操作则是围绕流进行的.当一个流最初被创建时,它并没有定向.若在未定向的流上使用一个多字节IO函数,则将该流的定向设置为宽定向:若在未定向的流上使用一个单字节IO函数,则将该流的定向设置为字节定向. stdio.h定义了三个标准流,stdin.stdout和stderr,分别是标准输入.标准输出和标准出错. 缓冲-- 标准IO库提供缓冲的目的是尽可能减少使用read和write调用的次数.它也对每个IO流自动地进行缓冲管理,从而避免了应用程序需要

ubuntu系统下,gsl 库链接问题 -undefined reference to `cblas_xxx`

今天在ubuntu系统下进行程序调试的时候出现以下错误信息: [ 10%] Linking CXX executable ../test_coco /usr/local/lib/libgsl.so: undefined reference to `cblas_ztrsv' /usr/local/lib/libgsl.so: undefined reference to `cblas_scasum' /usr/local/lib/libgsl.so: undefined reference to

Linux系统下安装ncurses库

ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单. 今天在安装ncurses库的时候遇到了一些问题,现将遇到的问题所叙如下: 首先说明:本次安装采用的是源码包的安装方式,并没有直接使用一键命令的方式,并不是源码包安装方式有多牛逼,只是实在是我的虚拟机连不上外网. 1.下载ncurses库源码压缩包 大家可以去这个网址下载:http://ftp.gnu.org/pub/gnu/ncurses/ 版本的新旧差别不大,本次我选用的是ncurses-5.6版本 2

在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

iconv命令是运行于linux/unix平台的文件编码装换工具.当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码不同而引起的,这时可以使用iconv进行编码转换,从而解决乱码问题. 解决文本文件乱码问题分3步:1.确定文件编码,2.确定iconv是否支持此编码的转换,3.确定Linux/Unix操作系统编码,4.转换文件编码为与系统编码一致:下面通过对test.txt文件来举例. 1. 使用file命令来确定