逻辑运算符短路操作

本文讲述了在C++编程中遇到的一个关于逻辑运算符短路操作的问题。原本的while循环利用或操作符连接两个文件读取,期望只要有文件可读就继续,但实际运行结果总是先输出第一个文件所有内容,再输出第二个文件内容。问题出在逻辑运算符的短路特性,即当使用&&时,如果第一个操作数为false,则不会计算第二个操作数;使用||时,如果第一个操作数为true,则不会计算第二个操作数。修正后的代码利用这一特性,确保正确处理两个文件的读取顺序。
摘要由CSDN通过智能技术生成

今天在学习c++编程的时候,有一个bug一直修复不好,后面发现是逻辑运算符出了问题。
先贴代码:

// 17.4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<fstream>
#include<string>

using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::ofstream;
using std::ifstream;



int main()
{
    string file_one, file_two, outfile;
    cout << "Enter a filename: ";
    getline(cin, file_one);

    cout << "Enter another filename: ";
    getline(cin, file_two);

    cout << "Enter an output filename: ";
    getline(cin, outfile);

    ifstream fin_one(file_one);
    ifstream fin_two(file_two);
    ofstream fout(outfile, std::ios_base::out | std::ios_base::app);

    if (fin_one.is_open() && fin_two.is_open() && fout.is_open())
    {
        string str1, str2;
        while (getline(fin_one, str1) || getline(fin_two, str2))
        {
            if (!fin_one.eof() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值