小编cod*_*ker的帖子

"getchar()"函数如何能够将多个字符作为输入?

这是C中的基本字符计数程序:

#include <stdio.h>
#include <stdlib.h>

int main(){
    long nc = 0;

    while(getchar() != EOF)
        nc++;
    printf("%ld\n" , nc);
}
Run Code Online (Sandbox Code Playgroud)

当我输入"abcde"作为输入时,它显示值6(触发EOF测试后),换行符字符+1.但我怀疑的是getchar(),正如其名称本身所暗示的那样,只考虑了1个字符.但是当我一口气进入"abcde"时,它仍然有效.为什么会这样?我在这做什么问题?

c

3
推荐指数
2
解决办法
5178
查看次数

成员函数的行为在传递给对象时会发生变化吗?

我正在使用类实现链接列表,我发现了一些我无法解释的内容.这是代码:

struct Node{
    int data;
    Node *next;
};

class LinkedList{
    public:
        int msize = 0;
        Node *head;
        Node *tail;
        void append(Node mynode){
            if(msize == 0){
                head = &mynode;
                tail = &mynode;
                msize++;
            }
            else{
                (*tail).next = &mynode;
                tail = &mynode;
                msize++;
            }
        }
        void mergeList(LinkedList l2){
            cout << (*head).data;
        }
   };
Run Code Online (Sandbox Code Playgroud)

我面临的问题是mergeList函数,它将另一个链表作为输入.现在,这是main函数中的代码:

int main(){
    LinkedList l1;
    LinkedList l2;

    Node n1 , n2;
    n1.data = 132;
    n2.data = 123;

    l1.append(n1);
    l2.append(n2);

    l1.mergeList(l2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是问题:在函数中mergeList,输出的值是1,而它应该是132,因为它n1是链表的头节点l1 …

c++ class

0
推荐指数
1
解决办法
57
查看次数

C中字数统计程序无输出

我是C语言的新学习者.我最近了解了getchar()函数.我写了一个程序来计算输入中的单词数.该计划如下:(我使用代码块):

#include <stdio.h>

main(){
int c, nw;       /*nw stands for NUMBER OF WORDS*/

while((c=getchar())!=EOF){
    if (c==' '||c=='\t'||c=='\n')
        ++nw; 
}

printf("NUMBER OF WORDS ARE:%d",nw);
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,它接受输入,但没有OUTPUT.无论你输入多少次,它都会继续输入.

我试图搜索这一百万次,但我找不到答案.

但是,有人告诉我在while循环中包含一个Ctrl + D中断.我试着这样做,但结果相同.

如果有人有解决方案帮助我.从过去的2周开始,我试图找出问题所在.

谢谢!

c

-1
推荐指数
1
解决办法
96
查看次数

标签 统计

c ×2

c++ ×1

class ×1