Flashback bygger pepparkakshus!
  • 1
  • 2
2022-01-11, 17:01
  #1
Medlem
Hur skriver jag ett program som exekverar
./mittProgram 5 6
11
Allts att programmet tar tv parametrar utan att trycka p retur och exekverar direkt nr jag trycker p retur?

cout << "enter two numbers" << endl;
>> i >> j;
cout << i + j << endl;
Citera
2022-01-11, 18:39
  #2
Medlem
sch struntsamma jag provar lta programmet ta input med return.
Dremot undrar jag hur man stoppar en while loop med return knappen?

cin >> i;
while(i != return-knappen){
}
Citera
2022-01-11, 19:46
  #3
Medlem
Citat:
Ursprungligen postat av bosscs2
sch struntsamma jag provar lta programmet ta input med return.
Dremot undrar jag hur man stoppar en while loop med return knappen?

cin >> i;
while(i != return-knappen){
}
Tycker inte du ska strunta i det. Om du lser en kurs i C/C++ och anvnder Linux s borde du lra dig att skicka med argument till programmen. Sk p 'argv' och 'argc' fr att se hur du kan skicka argument till ditt program via command line. r inte speciellt komplicerat.
Citera
2022-01-11, 19:52
  #4
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av bosscs2
sch struntsamma jag provar lta programmet ta input med return.
Dremot undrar jag hur man stoppar en while loop med return knappen?

cin >> i;
while(i != return-knappen){
}
Om du istllet anvnder std::getline stoppar den som default input vid newline och tar bort newline frn strngen.
Allts r lngden p returstrngen lika med noll om du enbart trycker p enter.
Drfr kan du upprepa loopen om lngden r mer n noll.
Om det r heltal som du vill komma t kan du anvnda stoi() p strngen.

http://cpp.sh/3cpmo

Kod:
// Example program
#include <iostream>
#include <string>

int main()
{
  
std::string name;
  
  
std::size_t l;
  do
  {
    
std::cout << "What is your name? ";
    
std::getline (std::cinname);
    
l=name.length();
    if (
l>0
      
std::cout << "Hello, " << name << "!\n";
  } while (
l>0);


Ls mer:
Citat:
std::getline (string)
C++98C++11
(1)
istream& getline (istream& is, string& str, char delim);
(2)
istream& getline (istream& is, string& str);
Get line from stream into string
Extracts characters from is and stores them into str until the delimitation character delim is found (or the newline character, '\n', for (2)).

The extraction also stops if the end of file is reached in is or if some other error occurs during the input operation.

If the delimiter is found, it is extracted and discarded (i.e. it is not stored and the next input operation will begin after it).

Note that any content in str before the call is replaced by the newly extracted sequence.
https://www.cplusplus.com/reference/...tring/getline/
__________________
Senast redigerad av Enterprise 2022-01-11 kl. 20:25.
Citera
2022-01-11, 20:23
  #5
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av DieTrolle
Tycker inte du ska strunta i det. Om du lser en kurs i C/C++ och anvnder Linux s borde du lra dig att skicka med argument till programmen. Sk p 'argv' och 'argc' fr att se hur du kan skicka argument till ditt program via command line. r inte speciellt komplicerat.
Hller med om att argument r bttre, men man mste ju brja lra sig ngonstans.
Citera
2022-01-11, 20:34
  #6
Medlem
Citat:
Ursprungligen postat av Enterprise
Hller med om att argument r bttre, men man mste ju brja lra sig ngonstans.
P problemformuleringen s fr jag intrycket av att uppgiften specificerar att det r s programmet ska anropas. Tror inte TS har kompetens sjlv att komma upp med att programmet ska anropas p detta stt....
Citera
2022-01-11, 20:36
  #7
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av DieTrolle
P problemformuleringen s fr jag intrycket av att uppgiften specificerar att det r s programmet ska anropas. Tror inte TS har kompetens sjlv att komma upp med att programmet ska anropas p detta stt....
Sant
Citera
2022-01-11, 21:22
  #8
Medlem
t.ex.

Kod:
#include <iostream>

int main(int argc, char **argv) {
    std::cout << std::stoi(argv[1]) + std::stoi(argv[2]) << std::endl;
    return 0;
}

Felhantering fr du lsa sjlv
Citera
2022-01-11, 22:04
  #9
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av dunob
t.ex.

Kod:
#include <iostream>

int main(int argc, char **argv) {
    std::cout << std::stoi(argv[1]) + std::stoi(argv[2]) << std::endl;
    return 0;
}

Felhantering fr du lsa sjlv
Det dr r hela lsningen, koncist och snyggt, och TS gr vidare none the wiser
Citera
2022-01-12, 21:24
  #10
Medlem
Citat:
Ursprungligen postat av Enterprise
Om du istllet anvnder std::getline stoppar den som default input vid newline och tar bort newline frn strngen.
Allts r lngden p returstrngen lika med noll om du enbart trycker p enter.
Drfr kan du upprepa loopen om lngden r mer n noll.
Om det r heltal som du vill komma t kan du anvnda stoi() p strngen.

Ok! S getline genererar 0 vid blanksteg, mycket anvndbart! Stoi() fr konvertering frn string till int, tack, ska studera det vidare innan j lser vidare i trden.
Citera
2022-01-12, 21:43
  #11
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av bosscs2
Ok! S getline genererar 0 vid blanksteg, mycket anvndbart! Stoi() fr konvertering frn string till int, tack, ska studera det vidare innan j lser vidare i trden.
Nja, nstan, getline renderar utifrn input enbart bestende av newline-tecknet en strng med length (lngden) noll.
Citera
2022-01-13, 00:18
  #12
Medlem
Citat:
Ursprungligen postat av bosscs2
Ok! S getline genererar 0 vid blanksteg, mycket anvndbart! Stoi() fr konvertering frn string till int, tack, ska studera det vidare innan j lser vidare i trden.
Nej. Newline r radbrytning, inte blanksteg.
Blanksteg = mellanslag.
Vill du ha blanksteg som delimiter fr du anvnda en space-char som tredje argument.
Ex.
Kod:
std::getline(std::cin, minstring, ' ');
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in