webForumDet fria alternativet

vad är fel i denna kod

C/C++

1 svar · 440 visningar · startad av tarfala

Medlem sedan juli 2000177 inlägg
Frågan#1

vad är fel i följande kod (får en onödig tomrad...vid körning)

#include <iostream>
#include <string>

using namespace std;
main()
{
string namn;

{ 
	cout \<\< "Skriv ditt namn: ";
	getline(cin, namn); 
	if(namn\[0\] == '\\0') 
	EOF;
	else
	if (namn.find(' ') == string::npos)
			cout \<\< "Du måste ange både för- och efternamn!" \<\< endl;
		else
		{
			int spacePos = namn.find(' ');
			
			
			cout \<\< namn.substr(spacePos+1,namn.size()) \<\< ", "\<\< namn.substr(0,spacePos) \<\< endl;
		}
} 

return 0;
}

Medlem sedan juni 200010 432 inlägg
#2

Förmodligen är det nulltecknet <-> vagnretur som strular. Ta bort string deklarationen och byt ut getline-raden med dessa rader så funkar det nog:

char _namn[25];
cin.getline(_namn,25);
string namn(_namn);
273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)