0
#include<iostream>

using namespace std;

int main(){
    char sampleName[30];
    char middle;
    int i;

    cin>>sampleName;

    for(i=0;i<30;i++){
        if(sampleName[i]=='.'){
            middle=sampleName[i-1];
            break;
        }          
    }

    cout<<middle;

    return 0;
    }

ただし、入力にスペースが含まれている場合は機能しないようです。お願いします。誰でも私を助けることができますか?

4

2 に答える 2

1

std::getline予想される入力が何であるかは完全にはわかりませんがstd::stringstd::cin >> .... (関連するディスカッションについては、こちらを参照してください。)

だから、何かの形

#include <iostream>
#include <string>

int main()
{
    std::string sampleName;
    char middle;

    std::getline(std::cin, sampleName);

    for (int i = 0; i < sampleName.size(); i++)
    {
        if (sampleName[i] == '.')
        {
            middle = sampleName[i-1];
            break;
        }          
    }

    std::cout << middle << std::endl;

    return 0;
}

最もうまくいくかもしれません。(ここをクリックてテストします。)

于 2013-07-02T01:27:53.847 に答える
0

スペースを含む行に入るgetline関数があります。プログラムがスペースを含む入力を正しく受け取っていないため、間違った出力が得られます。

于 2013-07-02T01:29:48.050 に答える