【问题标题】:After concatenation 1st letter is not displayed连接后第一个字母不显示
【发布时间】:2012-12-16 08:32:48
【问题描述】:

下面是给出的代码,我已经让这个程序连接两个字符串连接,但是在显示连接后它不显示第一个单词.....我认为 cin.ignore() 中缺少一些东西请检查并帮帮我???

#include "stdafx.h"
#include<iostream>
#include <stdio.h>
#include <string>
#define MAX 100
using namespace std;
void main ()
{

char str[MAX],abc[MAX];
cout<<"\nEnter the string 1";
cin.ignore();                   
cin.get(str,MAX);                                                     
cout<<"\nEnter The String 2";
cin.ignore();
cin.get(abc,MAX);
cout<<"\nS1="<<str;
cout<<"\ns2="<<abc;
strcat(str,abc);
cout<<"\nStrings after catenation are"<<str;
system("pause");

}

这个程序的错误是连接后第一个字母没有显示在这一行cin.ignore();。另一个错误是我想将结果存储在另一个字符中说char d[MAX] 但编译器给出了错误

【问题讨论】:

    标签: c++ concatenation


    【解决方案1】:

    问题是“.ignore()”,它忽略了用户输入的下一个字符。你为什么用这个?

    【讨论】:

    • 当用户按回车时,他是否试图抓住换行符?可能是原因,但如果是这样,他就搞砸了。当然,自从我编写任何 C++ 以来已经 15 年了,所以我可能会离开,但我认为就是这样。
    • 但是当我不使用 cin.ignore 时,它​​也会给出错误,即我正在使用这个
    • @Niazi - 就像 Eric 说的,你应该使用 ignoreget 之后 跳过换行符,而不是之前。
    猜你喜欢
    • 2012-07-15
    • 2012-03-15
    • 2022-11-04
    • 2021-03-11
    • 1970-01-01
    • 2017-01-25
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多