30天 零基础 系统化学会C++

zxcs · · 112 次点击 · · 开始浏览    

30天 零基础 系统化学会C++

 

获课:itazs.fun/2353/

C++输出数据

在 C++ 中,输出数据是一个常见的任务,通常通过标准库中的 iostream 来完成。C++ 提供了多种方式来格式化和输出数据到控制台、文件或其他输出流。以下是几种基本的方法来输出数据:

1. 使用 std::cout输出

std::cout 是 C++ 标准库中用于输出的流对象,它与 << 操作符结合使用,可以将数据发送到标准输出(通常是控制台)。例如:

cpp深色版本#include <iostream>int main() {    std::cout << "Hello, World!" << std::endl;    return 0;}

在这个例子中,"Hello, World!" 被输出到了控制台,而 std::endl 则表示换行,并刷新输出缓冲区。

2. 输出不同类型的数据

你可以使用 << 操作符连续输出不同类型的变量或表达式:

cpp深色版本#include <iostream>int main() {    int number = 42;    double pi = 3.14159;    std::string greeting = "Hello";    std::cout << "Number: " << number << ", Pi: " << pi << ", Greeting: " << greeting << std::endl;    return 0;}

3. 格式化输出

为了更好地控制输出格式,C++ 提供了一些操纵器(manipulators),它们也位于 <iomanip> 头文件中。比如设置字段宽度、精度等:

cpp深色版本#include <iostream>#include <iomanip> // for manipulatorsint main() {    double value = 123.456789;    // 设置输出宽度    std::cout << "Default output: " << value << std::endl;    std::cout << "Width set to 10: " << std::setw(10) << value << std::endl;    // 设置浮点数精度    std::cout << "Precision set to 2: " << std::setprecision(2) << value << std::endl;    // 设置填充字符    std::cout << "Filled with zeros: " << std::setw(10) << std::setfill('0') << value << std::endl;    return 0;}

4. 文件输出

除了控制台输出,你还可以将数据写入文件。这需要使用 std::ofstream 类:

cpp深色版本#include <fstream>#include <iostream>int main() {    std::ofstream outFile("example.txt");    if (outFile.is_open()) {        outFile << "This is a line of text inside the file.\n";        outFile.close();    } else {        std::cerr << "Unable to open file";    }    return 0;}

5. 使用 printf函数

尽管 std::cout 和其他 C++ 流操作是推荐的方式,但 C 风格的 printf 函数仍然可以在 C++ 程序中使用,特别是在你需要兼容旧代码或者偏好它的语法时:

cpp深色版本#include <cstdio> // For printfint main() {    int age = 25;    char name[] = "Alice";    printf("Name: %s, Age: %d\n", name, age);    return 0;}

以上就是 C++ 中几种不同的输出方法。根据你的具体需求选择合适的方式来输出数据。如果你正在编写现代 C++ 代码,推荐优先考虑使用 std::cout 和相关流功能,因为它们提供了类型安全性和更好的可读性。

C++输入数据

在 C++ 中,输入数据是通过标准库中的 iostream 实现的。最常用的方法是使用 std::cin 对象结合 >> 操作符来读取用户从键盘输入的数据。此外,C++ 还支持从文件和其他流中读取数据。以下是几种常见的输入方法:

1. 使用 std::cin输入

std::cin 是一个用于输入的标准流对象,它与 >> 操作符一起使用,可以从标准输入(通常是键盘)读取数据并存储到变量中。例如:

cpp深色版本#include <iostream>int main() {    int number;    std::cout << "Enter an integer: ";    std::cin >> number;    std::cout << "You entered: " << number << std::endl;    return 0;}

2. 输入多种类型的数据

你可以连续使用 >> 操作符来读取不同类型的数据,并将它们分别存储到不同的变量中:

cpp深色版本#include <iostream>#include <string>int main() {    int age;    double height;    std::string name;    std::cout << "Enter your name, age, and height: ";    std::cin >> name >> age >> height;    std::cout << "Name: " << name << ", Age: " << age << ", Height: " << height << std::endl;    return 0;}

3. 处理空白字符和行输入

默认情况下,>> 操作符会跳过空白字符(如空格、制表符、换行符),这可能导致一些意外的行为。如果你想要读取包含空格的字符串或整行文本,可以使用 std::getline 函数:

cpp深色版本#include <iostream>#include <string>int main() {    std::string line;    std::cout << "Enter a line of text (including spaces): ";    std::getline(std::cin, line);    std::cout << "You entered: " << line << std::endl;    return 0;}

4. 文件输入

除了从控制台读取输入外,你还可以使用 std::ifstream 类从文件中读取数据:

cpp深色版本#include <fstream>#include <iostream>#include <string>int main() {    std::ifstream inFile("example.txt");    if (inFile.is_open()) {        std::string line;        while (std::getline(inFile, line)) {            std::cout << line << '\n';        }
        inFile.close();    } else {        std::cerr << "Unable to open file";    }    return 0;}

5. 使用 scanf函数

尽管推荐使用 std::cin 和其他 C++ 流操作,但你也可以选择使用 C 风格的 scanf 函数来进行输入。这种方式更常见于旧代码或特定格式化输入需求中:

cpp深色版本#include <cstdio> // For scanfint main() {    char name[100];    int age;    printf("Enter your name and age: ");    scanf("%99s %d", name, &age); // 注意限制字符串长度以防止缓冲区溢出    printf("Name: %s, Age: %d\n", name, age);    return 0;}

6. 错误处理

当使用 std::cin 或其他输入函数时,应该考虑错误处理。例如,检查是否成功读取了预期类型的值,或者是否有未预期的输入导致读取失败:

cpp深色版本#include <iostream>int main() {    int number;    std::cout << "Enter an integer: ";    if (std::cin >> number) {        std::cout << "You entered: " << number << std::endl;    } else {        std::cerr << "Invalid input." << std::endl;        // 清除错误标志并忽略无效输入        std::cin.clear();        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');    }    return 0;}

以上就是 C++ 中几种不同的输入方法。根据你的具体需求选择合适的方式来输入数据。如果你正在编写现代 C++ 代码,推荐优先考虑使用 std::cin 和相关流功能,因为它们提供了类型安全性和更好的可读性。同时,记得总是检查输入操作的成功与否,以确保程序的健壮性。

112 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传