Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

wcześniej użyty znak nowego wiersza, a funkcja "getline()"

$
0
0

Cześć, robiłem właśnie zadanie 7. z załącznika i natrafiłem na problem. Mianowicie, po podaniu liczby aut do skatalogowania, program przeskakiwał mi opcje podania maki i przechodził od razu do roku produkcji. Było to spowodowane tym, że znak nowego wiersza zostawał w strumieniu wejściowym. Rozwiązałem ten problem, dodając linie "cin.get()" na początku pętli i teraz moje pytanie: czy można się jakoś obejść bez tego "cin.get()" lub zastąpić funkcję "getline()" inną, aby to sprawnie działało?

 

Kod programu:


#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;
struct car
{
	string brand;
	int yop;


};

int main()
{
	int n, i;
	cout << "how many cars do you want to catalogue? ";
	cin >> n;

	car *tab = new car[n];
	
	for (i = 0; i < n; i++)
	{
		cin.get();

		
		cout << endl << "car "<< i + 1 << "."<< endl;

		cout << "car brand: ";
		getline(cin, tab[i].brand);

		cout << "year of production: ";
		cin >> tab[i].yop;

		
	}


	for (i = 0; i < n; i++)
	{
		cout << endl << "car "<< i + 1 << "."<< endl;
		cout << tab[i].brand << endl << tab[i].yop << endl;

		


	}

	delete [] tab;

	_getch();
	return 0;
}

 


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>