怎样增加能够输入多行的语句呀?

这个程序能够解决单行输入,但不能解决多行输入。怎样增加能够输入多行的语句呀?

img

基于Monster 组和GPT的调写:

用循环来读取多行输入,并对每一行进行加密处理。以下是一个修改后的示例代码,可以实现多行输入的功能:

img

#include <stdio.h>
#include <string.h>

int main() {
    char str[80];
    
    while (fgets(str, sizeof(str), stdin)) {
        // 移除换行符
        str[strcspn(str, "\n")] = '\0';
        
        for (int i = 0; i < strlen(str); i++) {
            if (str[i] >= 'A' && str[i] <= 'M') {
                str[i] += 'N' - 'A';
            } else if (str[i] >= 'N' && str[i] <= 'Z') {
                str[i] -= 'N' - 'A';
            }
        }
        
        printf("%s\n", str);
    }
    
    return 0;
}


用 fgets 函数来逐行读取输入,并在每次循环中对读取的行进行加密处理。同时,通过 strcspn 函数移除每行的换行符。然后,对每个字符进行字母替换,根据给定的加密方式进行加密或解密操作。最后,使用 printf 函数输出加密后的句子。

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

可以使用循环来实现多行输入,具体思路如下:

  1. 定义一个字符串变量用于存储输入的多行内容。
  2. 使用循环语句,每次输入一行内容并将其添加到字符串变量中。
  3. 当输入结束时,退出循环。

下面是一个示例代码:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string input = "";  // 存储输入的多行内容
    string line;        // 存储每次输入的一行内容

    // 循环输入内容
    while (getline(cin, line)) {
        if (line == "") break;  // 如果输入为空行,则退出循环
        input += line + "\n";   // 将输入的内容添加到字符串变量中
    }

    cout << "输入的内容为:" << endl << input << endl;

    return 0;
}

这个示例代码使用getline函数来实现输入,每次循环输入一行内容,并将其添加到字符串变量中,直到输入为空行为止。最终输出输入的多行内容。

该回答引用ChatGPT
对于单行输入,我们可以使用`input()`函数;而对于多行输入,我们可以使用`input()`函数的变种——`sys.stdin.readlines()`。

具体来说,我们需要引入`sys`模块,并使用`sys.stdin.readlines()`函数代替`input()`函数。代码如下:

python
import sys

input_lines = sys.stdin.readlines()

# 对输入的多行内容进行处理
...



需要注意的是,`sys.stdin.readlines()`读入的所有内容都是字符串类型。因此,对于需要进行数值计算的输入,需要先将其转化为相应的数据类型。

另外,如果需要在读取多行输入时指定结束输入的标志,可以使用`sys.stdin.readline()`函数并在最后一行输入一个指定标志(例如`EOF`)。具体代码如下:

python
import sys

input_lines = []
for line in sys.stdin:
if line.strip() == 'EOF': # 以EOF作为输入结束的标志
break
input_lines.append(line)

# 对输入的多行内容进行处理
...