21xrx.com
2025-03-31 14:06:23 Monday
文章检索 我的文章 写文章
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++程序可以在控制台中、在文件中或在网络中进行输入输出操作。对于需要频繁进行读取、写入和处理数据的程序,这些技术非常重要。

  
  

评论区