gpt4 book ai didi

c - 程序无法在 Ubuntu 12.04 和 Windows XP 上运行

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:30 24 4
gpt4 key购买 nike

安装了Eclipse和CB,遇到几个项目启动不正常。我认为这是因为我使用的操作系统,这就是我切换到 Ubuntu 的原因。但是,我尝试运行的某些程序仍然无法正常运行。例如,clc-wiki 中的这段代码在按下 Enter 时不输出任何内容:

#include <stdio.h>
#define MAXLINE 40 /* maximum input line size */

int getlines(char line[], int maxline);
void copy(char to[], char from[]);

/* print longest input line */
int main()
{
int c;
int len; /* current line length */
int max; /* maximum length seen so far */
char line[MAXLINE]; /* current input line */
char longest[MAXLINE]; /* longest line saved here */

max = 0;

while ((len = getlines(line, MAXLINE)) > 0) {
if (line[len-1] != '\n')
while ((c = getchar()) != EOF && c != '\n')
++len;

if (len > max) {
max = len;
copy(longest, line);
}
}

if (max > 0) { /* there was a line */
printf("Longest line with %d characters:\n", max);
printf("%s ...\n", longest);
}

return 0;
}

/* getline: read a line s, return length */
int getlines(char s[], int lim)
{
int c, i;

for (i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';

return i;
}

/* copy: copy 'from' into 'to'; assume to is big enough */
void copy(char to[], char from[])
{
int i;

i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}

如果我们在 XP 中运行它,也会遇到类似的问题。尽管如此,如果我们在 ideone 中编译完全相同的代码,一切都是完美的.

安装了 gcc 和 g++,以及适用于 Windows 的 mingw。

您能告诉我问题出在哪里吗?

最佳答案

this code outputs nothing upon pushing Enter

那是您的代码的正确行为。它被设计为在按下 Enter 时不打印任何内容。

该代码尤其需要文件结束指示。如果您的程序从文件中读取(如 ideone 的情况),则文件结束指示或多或少会自动发生。如果您的程序从计算机键盘读取(当您以交互方式运行它时),那么您必须提供文件结束指示。

练习您提供的代码:

在 Linux 上,从键盘输入几行不同长度的内容,每行后跟 Enter。然后单独一行输入CONTROL-D

在 Windows 上,从键盘输入几行不同长度的内容,每行后跟 Enter。然后单独一行输入enter CONTROL-Z

关于c - 程序无法在 Ubuntu 12.04 和 Windows XP 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com