21xrx.com
2024-12-22 20:02:40 Sunday
登录
文章检索 我的文章 写文章
C++输入输出(I/O)操作
2023-07-02 15:13:25 深夜i     --     --
C++语言 输入输出操作 std::cin和std::cout 格式化输出 文件操作

C++输入输出操作(I/O)是C++程序设计的核心部分,它提供了与外部世界通信的能力。本文将介绍C++的输入输出技术,包括标准输入/输出,文件操作和网络编程。

1. 标准输入/输出

C++标准库提供了三个主要的输入输出类:cin,cout和cerr。cin对象表示标准输入流,用于从控制台读取输入。cout对象表示标准输出流,用于向控制台输出数据。cerr对象是标准错误流,用于输出错误信息到控制台。

使用cin对象接受输入的基本方式如下:


int num; // 定义一个整型变量

cin >> num; // 从控制台读取输入到num变量中

cout << "Input number is: " << num << endl; // 将变量num输出到控制台

2. 文件输入/输出

C++也支持对文件的读取和写入操作。文件操作主要通过fstream类实现。可以使用ofstream类进行文件写操作,使用ifstream类进行文件读操作。

使用ofstream进行文件写操作的基本方式如下:


#include <fstream>

using namespace std;

int main() {

  ofstream outfile; // 定义要写入的文件

  outfile.open("example.txt"); // 打开文件

  outfile << "This is the first line." << endl; // 写入文件

}

使用ifstream进行文件读取操作的基本方式如下:


#include <fstream>

using namespace std;

int main() {

  ifstream infile; // 定义要读取的文件

  infile.open("example.txt"); // 打开文件

  string line;

  while (getline(infile, line)) // 按行读取文件

   cout << line << endl; // 输出读取到的每一行

 

}

3. 网络编程

C++支持Socket编程,以便实现网络通信。Socket编程可以通过TCP或UDP协议进行通信。TCP提供可靠的数据传输,而UDP则提供无连接的快速数据传输。

使用Socket编程进行网络通信的基本方式如下:


#include <iostream>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

#include <cstdlib>

#include <cstring>

#include <unistd.h>

using namespace std;

void error(const char *msg) {

  perror(msg);

  exit(0);

}

int main(int argc, char *argv[]) {

  int sockfd, portno, n;

  struct sockaddr_in serv_addr;

  struct hostent *server;

  char buffer[256];

  if (argc < 3) {

    fprintf(stderr,"usage %s hostname port\n", argv[0]);

    exit(0);

  }

  portno = atoi(argv[2]);

  sockfd = socket(AF_INET, SOCK_STREAM, 0);

  if (sockfd < 0) error("ERROR opening socket");

  server = gethostbyname(argv[1]);

  if (server == NULL) {

    fprintf(stderr,"ERROR, no such host\n");

    exit(0);

  }

  bzero((char *) &serv_addr, sizeof(serv_addr));

  serv_addr.sin_family = AF_INET;

  bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);

  serv_addr.sin_port = htons(portno);

  if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)

    error("ERROR connecting");

  printf("Please enter the message: ");

  bzero(buffer,256);

  fgets(buffer,255,stdin);

  n = write(sockfd,buffer,strlen(buffer));

  if (n < 0) error("ERROR writing to socket");

  bzero(buffer,256);

  n = read(sockfd,buffer,255);

  if (n < 0) error("ERROR reading from socket");

  printf("%s\n",buffer);

  close(sockfd);

  return 0;

}

本文介绍了C++输入输出技术的基本知识,包括标准输入输出,文件操作和网络编程。通过这些技术,C++程序可以在控制台中、在文件中或在网络中进行输入输出操作。对于需要频繁进行读取、写入和处理数据的程序,这些技术非常重要。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复