#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

// declares variables
string dayow;
string month;
string day;
string year;


int main()
{
cout << "Pick you day of the week (ex: Monday-Sunday)" << endl;
getline(cin, dayow);
cout << " " << endl;

cout << "Pick your month (ex: January-December)" << endl;
getline(cin, month);
cout << " " << endl;

cout << "Pick your day of the month (ex: 1-31)" << endl;
getline(cin, day);
cout << " " << endl;

cout << "Pick your year" << endl;
getline(cin, year);
cout << " " << endl;

cout << "This is your date.." << endl;
cout << dayow << ", " << month << " " << day << ", " << year << "." << endl;
cout << " " << endl;

cout << "Here are the 3 formats to display your date.." << endl;
cout << " " << endl;

 cout << "1. " << month << " " << day << " was a " << dayow << " in " << year    << endl;
cout << " " << endl;

std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string str = month;
std::string str2 = str.substr(0, 2);
std::string str = day;
std::string str3 = str.substr(0, 2);
std::string str = year;
std::string str4 = str.substr(0, 4);

std::cout << str1 << ", " << str2 << " " << str3 << " '" << str4 << endl;
return 0;
}

Итак, что я пытаюсь сделать здесь, так это заставить пользователя ввести пример: вторник, 22 марта 2012 г., затем появятся 2 результата. 1-е «1 января было вторником в 2012 году», и это нормально. Проблема заключается во втором результате, где я хочу "вторник, 22 марта 2012 г.", но проблема в строках 46–53, все строки подключаются к первому std: string str = dayow; так что вывод превращается в TueTuTuTues! Кто-нибудь может помочь ?? благодаря!

РЕДАКТИРОВАТЬ: Извините, если это вопросы для новичков: / действительно новичок в кодировании!

c++
-2
Gizmoh 16 Окт 2015 в 09:04

3 ответа

Лучший ответ

Попробуйте это: ( некоторые изменения вашего кода )

#include <iomanip>
#include<iostream> // **add this header file**
  #include <string>

  #include <fstream>

  using namespace std;

 // declares variables
string dayow;
string month;
string day;
string year;


int main()
{
cout << "Pick you day of the week (ex: Monday-Sunday)" << endl;
getline(cin, dayow);
cout << " " << endl;

cout << "Pick your month (ex: January-December)" << endl;
getline(cin, month);
cout << " " << endl;

cout << "Pick your day of the month (ex: 1-31)" << endl;
getline(cin, day);
cout << " " << endl;

cout << "Pick your year" << endl;
getline(cin, year);
cout << " " << endl;

cout << "This is your date.." << endl;
cout << dayow << ", " << month << " " << day << ", " << year << "." << endl;
cout << " " << endl;

cout << "Here are the 3 formats to display your date.." << endl;
cout << " " << endl;

 cout << "1. " << month << " " << day << " was a " << dayow << " in " << year    << endl;
cout << " " << endl;

// **changes start here**
string str1 = dayow.substr(0, 3);

string str2 = month.substr(0, 3);

string str3 = day.substr(0, 2);

string str4 = year.substr(0, 4);

cout << str1 << ", " << str2 << " " << str3 << " ," << str4 << endl;
return 0;
}
1
Newaz Hossain 16 Окт 2015 в 06:36

Изменить эту часть:

std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string str = month;
std::string str2 = str.substr(0, 2);
std::string str = day;
std::string str3 = str.substr(0, 2);
std::string str = year;
std::string str4 = str.substr(0, 4);

Чтобы :

std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string stra = month;
std::string str2 = stra.substr(0, 3);
std::string strb = day;
std::string str3 = strb.substr(0, 2);
std::string strc = year;
std::string str4 = strc.substr(0, 4);

Проблема заключалась в том, что у вас было одинаковое имя переменной для дня, месяца и года

0
vishal 16 Окт 2015 в 06:10

Какой компилятор вы используете? Ваша программа не должна компилироваться.

  1. Добавить #include <iostream>
  2. Вы не можете определить несколько переменных с одинаковым именем C ++. Так что замените

    std::string str = dayow;
    std::string str1 = str.substr(0, 3);
    std::string str = month;
    std::string str2 = str.substr(0, 2);
    std::string str = day;
    std::string str3 = str.substr(0, 2);
    std::string str = year;
    std::string str4 = str.substr(0, 4);
    

    с участием

    std::string str1 = dayow.substr(0, 3);
    std::string str2 = month.substr(0, 2);
    std::string str3 = day.substr(0, 2);
    std::string str4 = year.substr(0, 4);
    
1
Yury 16 Окт 2015 в 17:18