📜  带有示例的C++中的ios运算符!()函数(1)

📅  最后修改于: 2023-12-03 15:39:26.575000             🧑  作者: Mango

带有示例的 C++ 中的 ios 运算符 !() 函数

在 C++ 的 iostream 库中,有一个用于表示输入输出状态的 ios 基类,包含了许多操作函数。其中一个函数是 !() 运算符,它被重载来逆转输入输出流的状态标识。该函数通常被用于测试状态标识,以确定输入输出流是否处于错误状态,并且可以用于释放和捕获输入和输出流中的数据。

下面是 !() 函数的示例代码:

#include <iostream>
using namespace std;

int main() {
   int num1, num2;

   cout << "请输入两个整数:";
   cin >> num1 >> num2;

   if (!cin) {
      cout << "输入错误!" << endl;
      cin.clear();
      cin.ignore(1000, '\n');
   } else {
      cout << "num1 + num2 = " << num1 + num2 << endl;
   }

   return 0;
}

上面的代码中,我们使用了 !() 函数来测试输入流的状态。如果输入流中没有读取到整数,!cin 的结果将为真,我们就可以手动清除流的状态并忽略输入流中的余留数据。否则,我们将使用 num1 和 num2 计算它们的总和。

另外,!() 运算符也可以与文件流一起使用,以便测试文件的状态。下面是一个文件读取和写入的示例代码:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
   ofstream outputFile("output.txt");
   ifstream inputFile("input.txt");

   if (!outputFile) {
      cout << "无法打开输出文件!" << endl;
      return 1;
   }

   if (!inputFile) {
      cout << "无法打开输入文件!" << endl;
      return 1;
   }

   int num;
   while (inputFile >> num) {
      outputFile << num << endl;
   }

   outputFile.close();
   inputFile.close();
   return 0;
}

上面的代码中,我们打开了一个名为 input.txt 的输入文件和一个名为 output.txt 的输出文件。如果文件打开失败,!() 运算符将为真并输出错误消息。否则,我们将从输入文件中读取一个整数并将其写入输出文件中。

总结一下,!() 运算符是用于逆转输入输出流状态标识的函数,可以用于测试输入输出流是否处于错误状态,并且还可以用于释放和捕获流中的数据。在使用该函数时,我们应该注意手动清除流的状态和忽略余留的数据。