Inlägg

Inlägg som Rikurt har skrivit i forumet
Av Rikurt
Skrivet av KirderfNossral:

Du stänger aldrig main-funktionen med en }

Som det har nämnts tidigare blir detta ganska tydligt om man sitter i en IDE eller editor (Visual Studio Code, eller annat) och på så sätt slipper du sitta efter bortglömda parenteser, måsvingar eller semikolon i timmar.

Jag har Microsoft Visual Studio. Jag tycker jag stirrat mig blind och räknat måsvingar, men vilat hjärnan någon timma så på´t igen.

Av Rikurt

Hej alla, vet att jag skrivit mycket, jag fick min kod körbar, och la till en sökfunktion efter lite googlande, nu får jag upp 1 felmeddelande, försökt copilot på denna då jag har deadline idag och suttit flera timmar med detta program, är det någon vass som bara enkelt kan säga vad jag behöver göra för att få programmet körbart? Just nu klagar den på no matching token, och jag har varit dålig på det tidigare, men stirrat mig blind, verkligen blind. Och är lite desperat just nu.

#include <iostream> #include <string> using namespace std; struct Contact { string name; string number; string address; }; void printContact(const Contact& contact) { cout << "Namn: " << contact.name << endl; cout << "Nummer: " << contact.number << endl; cout << "Adress: " << contact.address << endl; } int main() { const int maxContacts = 10; Contact addressBook[10]; // Lägg in grunddatan i adressboken, namn, nummer, adress nedan addressBook[0] = { "Anna", "0721234567", "Drottninggatan 12, Stockholm" }; addressBook[1] = { "Krister", "072123476", "Kungsgatan 11, Stockholm" }; addressBook[2] = { "Josefin", "0721234765", "Fridhemsgatan 13, Stockholm" }; addressBook[3] = { "Rikard", "0721237654", "Pilgatan 17, Huddinge" }; addressBook[4] = { "Sara", "0721276543" , "Patron Pers Väg 10, Huddinge" }; addressBook[5] = { "Theodor", "071765432", "Kamratgatan 19, Stockholm" }; addressBook[6] = { "Emelie", "0727654321", "Trattstigen 9, Stockholm" }; addressBook[7] = { "Sebastian", "0727654312", "Kantarellgatan 6, Lund" }; addressBook[8] = { "Josefin", "0727651234", "Fagergatan 4, Bromma" }; addressBook[9] = { "Victor", "0721765234", "Skjutgatan 55, Haninge" }; int choice; do { cout << "Välkommen till adressboken" << endl; cout << "1. Visa alla kontakter" << endl; cout << "2. Sök efter kontakt" << endl; cout << "3. Lägg till kontakt" << endl; cout << "4. Avsluta" << endl; cout << "Vänligen välj ett alternativ (1-4): "; cin >> choice; switch (choice) { case 1: // Visa alla kontakter for (int i = 0; i < 10; ++i) { if (!addressBook[i].name.empty()) { cout << "Kontakt " << i + 1 << endl; printContact(addressBook[i]); cout << endl; } } break; case 2: // Sök efter kontakt string searchTerm; cout << "Skriv in sökterm (namn, nummer eller adress): "; cin.ignore(); // Rensar inputen getline(cin, searchTerm); bool found = false; for (int i = 0; i < 10; ++i) { if (!addressBook[i].name.empty() && (addressBook[i].name.find(searchTerm) != string::npos || addressBook[i].number.find(searchTerm) != string::npos || addressBook[i].address.find(searchTerm) != string::npos)) { printContact(addressBook[i]); found = true; } } if (!found) { cout << "Ingen matchande kontakt hittades." << endl; } break; case 3: // Lägg till ny kontakt if (addressBook[9].name.empty()) { cout << "Ange namn: "; cin.ignore(); // Rensar inputen getline(cin, addressBook[9].name); cout << "Ange nummer: "; getline(cin, addressBook[9].number); cout << "Ange adress: "; getline(cin, addressBook[9].address); cout << "Kontakt tillagd!" << endl; } else { cout << "Adressboken är full. Du kan inte lägga till fler kontakter." << endl; } break; case 4: cout << "Programmet avslutas. Hej då!" << endl; break; default: cout << "Felaktigt val, vänligen försök igen." << endl; } while (choice != 4); cout << "Programmet avslutas. Hej då!" << endl; return 0; }

Tack som fan på förhand.

Av Rikurt

Fattar, jag ändrade alla tecken, försökte till och med ta hjälp av chatGPT för att finna exakta felen, men de va föga hjälpbart.

#include<iostream> #include<string> using namespace std; struct Contact { string name; string number; string address; }; void printContact(const Contact& contact) { //Menyvalen ska stå här nedan cout << "Namn: " << contact.name << endl; cout << "Nummer: " << contact.number << endl; cout << "Adress: " << contact.address << endl; } int main() { Contact addressBook[10]; //Lägg in grunddatan i adressboken, namn, nummer, adress nedan addressBook[0] = { "Anna", "0721234567", "Drottninggatan 12, Stockholm" }; addressBook[1] = { "Krister", "072123476", "Kungsgatan 11, Stockholm" }; addressBook[2] = { "Josefin", "0721234765", "Pilgatan 12, Stockholm" }; addressBook[3] = { "Rikard", "0721237654", "Pilgatan 17, Huddinge" }; addressBook[4] = { "Sara", "0721276543" , "Patron Pers Väg 10, Huddinge" }; addressBook[5] = { "Theodor", "071765432", "Kamratgatan 19, Stockholm" }; addressBook[6] = { "Emelie", "0727654321", "Trattstigen 9, Stockholm" }; addressBook[7] = { "Sebastian", "0727654312", "Kantarellgatan 6, Lund" }; addressBook[8] = { "Josefin", "0727651234", "Fagergatan 4, Bromma" }; addressBook[9] = { "Victor", "0721765234", "Skjutgatan 55, Haninge" }; int choice; do { //Här ska menyn vara för de val som jag vill ha. cout << "Välkommen till adressboken" << endl; cout << "1.Visa alla kontakter" << endl; cout << "2. Sök efter kontaktt" << endl; cout << "3. Läggg till kontakt"; cout << "4. Avsluta" << endl; cout << "Vänligen välj ett alternativ(1-4): "; cin >> choice; switch (choice) { case 1: //Visa alla kontakter for (int i = 0; i < 10; ++i) { cout << "Kontakt" << i + 1 << endl; printContact(addressBook[i]); cout << endl; } break; case 2: //Välj kontakt int contactIndex; cout << "Fyll i kontaktinformation(0-9): "; cin >> contactIndex; if (contactIndex >= 0 && contactIndex < 10) { printContact(addressBook[contactIndex]); } else { cout << "Ogiltigt, V\x84nligen f\x94rs\x94k igen." << std::endl; } break; case 3: //Lägg till ny kontakt for (int i = 0; i < 10; ++i) { if (addressBook[i].name.empty()) { cout << "Skriv namn: "; cin >> addressBook[i].name; cout << "Skriv nummer: "; cin >> addressBook[i].number; cout << "Skriv adress: "; cin >> addressBook[i].address; cin.ignore();//Rensar inputen getline(std::cin, addressBook[i].address); cout << "Kontakt tillagd." << std::endl; break; case 4: cout << "Programmet avslutas. Hej då!" << endl; break; default: cout << "Felaktigt val, vänligen försök igen" << endl; } }while (choice != 4); return 0; }

Ser om koden ser bättre ut nu iaf, behöver nog eventuellt ta en paus haha, suttit med detta i flera timmar, så allt blir bara ett enda mos just nu, är säkert lättare löst än jag tror

Av Rikurt

Hmm, har ändrat, fattar att många saker har med måsvingarna att göra kanske bara tycker det är svårt att hitta. får även upp att just denna rad är too big for character:

addressBook[3] = { "Rikard", "0721237654", "R\x86dsvägen 11, Huddinge" };

Fast den är skriven på exakt samma sätt som övriga namn/adresser/inputs så är just den den varnar för.

Av Rikurt

Hej alla, nu har jag läst, googlat, och fan och hans moster sålt min själ och lagt timmar, så min hjärndimma är total.
Jag fick till en relativt simpel adressbok, med olika val från menyn etc. sen ville jag samla lite pluspoäng och kunna lägga till kontakter. Nu får jag upp följande felkoder:
expected ´while´
2157 too big for character
´{´: no matching token

Nedan är koden i helhet, och jag har stirrat till mig migrän för att kunna hitta felet:

#include<iostream>
#include<string>
using namespace std;

struct Contact {
std::string name;
std::string number;
std::string address;
};
void printContact(const Contact& contact) { //Menyvalen ska stå här nedan
std::cout << "Namn: " << contact.name << std::endl;

std::cout << "Nummer: " << contact.number << std::endl;

std::cout << "Adress: " << contact.address << std::endl;
}
int main() {
{

Contact addressBook[10];
//Lägg in grunddatan i adressboken, namn, nummer, adress nedan
addressBook[0] = { "Anna", "0721234567", "Drottninggatan 12, Stockholm" };
addressBook[1] = { "Krister", "072123476", "Kungsgatan 11, Stockholm" };
addressBook[2] = { "Josefin", "0721234765", "Pilgatan 12, Stockholm" };
addressBook[3] = { "Rikard", "0721237654", "R\x86dsvägen 11, Huddinge" };
addressBook[4] = { "Sara", "0721276543" , "Patron Pers Väg 10, Huddinge" };
addressBook[5] = { "Theodor", "071765432", "Kamratgatan 19, Stockholm" };
addressBook[6] = { "Emelie", "0727654321", "Trattstigen 9, Stockholm" };
addressBook[7] = { "Sebastian", "0727654312", "Kantarellgatan 6, Lund" };
addressBook[8] = { "Josefin", "0727651234", "Fagergatan 4, Bromma" };
addressBook[9] = { "Victor", "0721765234", "Skjutgatan 55, Haninge" };

int choice;
do { //Här ska menyn vara för de val som jag vill ha.
std::cout << "Meny" << std::endl;
std::cout << "1.Visa alla kontakter" << std::endl;
std::cout << "2. Vx84lj kontakt" << std::endl;
std::cout << "3. L\x84gg till ny kontakt";
std::cout << "4. Avsluta" << std::endl;
std::cout << "V\x84lj ditt val: ";
std::cin >> choice;

switch (choice) {
case 1:
//Visa alla kontakter
for (int i = 0; i < 10; ++i) {
printContact(addressBook[i]);
std::cout << std::endl;
}
break;

case 2:
//Välj kontakt
int contactIndex;
std::cout << "Fyll i kontaktinformation(0-9): ";
std::cin >> contactIndex;
if (contactIndex >= 0 && contactIndex < 10) {

printContact(addressBook[contactIndex]);
}
else {
std::cout << "Ogiltigt, V\x84nligen f\x94rs\x94k igen." << std::endl;
}
break;

case 3:
//Lägg till ny kontakt
for (int i = 0; i < 10; ++i) {
if (addressBook[i].name.empty()) {
std::cout << "Skriv namn: ";
std::cin >> addressBook[i].name;
std::cout << "Skriv nummer: ";
std::cin >> addressBook[i].number;
std::cout << "Skriv adress: ";
std::cin >> addressBook[i].address;
std::cin.ignore();//Rensar inputen
std::getline(std::cin, addressBook[i].address);
std::cout << "Kontakt tillagd." << std::endl;
break;

}
}
break;

case 4:
std::cout << "Avslutar program. Ha en fin dag." << std::endl;
break;

default:
std::cout << "Ogiltigt val. V\x84nligen f\x94rs\x94k igen" << std::endl;

} while (choice != 4);

return 0;
}

Av Rikurt

Hej,

Tack för hjälpen. Jag ska försöka läsa mig smartare, lite tidsbrist och lite osäker på vad och vart, nedan är instruktionerna för uppgiften:

"Skapa ett enkelt registerprogram med hjälp av ett fält (array) med element av typen struct. T.ex. ett lagerhållningsprogram, en adressbok, en förteckning över en skivsamling. Alla ingående variabler i structen bör inte vara av samma typ. Programmet ska ha ett textbaserat gränssnitt där man via en meny ska kunna välja bland några olika alternativ. Minimum är att man ska kunna skriva ut en lista över alla element samt söka efter ett element. Programmet ska upprepas tills dess användaren väljer att avsluta det. Man ska alltså alltid komma tillbaka menyn efter att ett alternativ har utförts. En meny för ett lagerhållningsprogram skulle kunna se ut så här:1. Skriv ut lagerlista2. Sök artikel3. Redigera artikel4. Avsluta programmetKoden ska innehålla minst en funktion(utöver main), vara kommenterad och korrekt indenterad. Läs mer om bedömning nedan.Skicka in källkodsfilen som du döpt till <ditt_namn>.cpp"

Det jag har svårast för är att få till en meny, hur jag ska göra smidigast, typ antal personer som ska finnas, då du ska kunna välja i någon form av lista, vart jag ska placera struct, vilka variabler den ska ha, funktioner, hur jag ev får in och var en for.-loop. Sitter helt fast just nu, detta är så långt jag kommit:

#include<iostream>
using namespace std;
{
struct person;
int namn;
string adress;
int ålder;
}
int main()
{

Av Rikurt

Struct array C++

Hej,

Jag läser programmering 1. Vi ska nu göra en lista med struct arrays, jag har läst kapitlet, googlat och jag tycker inte att jag fått något ur det, kontra vad uppgiften går ut på? Jag förstår inte vart jag ska börja, eller riktigt vart man kan finna funktionerna i C++- T.ex., är en sak att vi ska ha mer än funktionen int main(), hur kan jag hitta vad mer det finns? Är det google som gäller?

Alternativen vi hade var att göra en lagerlista, adressbok etc. Så till min fråga, finns det något sätt att randomisera för en adresslista? Att skriva in en del parametrar men till exempel sök person, och om man väljer bokstaven A, så får man upp t.ex. 10 personer, med namn, adress, telefonnummer, eller måste det hand knappas in i så fall? Jag har läst och tiden börjar rinna iväg, är det någon som har ett pedagogiskt, enklare tips för hur jag i alla fall ska starta? För nu är jag helt låst.

Tacksam för all hjälp.

Av Rikurt

Tack alla. Jag fann felet. På något sätt gmhadr koden låat sig, så den reagerade inte på mellanslag, eller /n eller endl; eller någpt alls, fick skriva om den i en ny consol och då blev det klockrent

Av Rikurt

Hej alla, och tack för era svar, jag har lyckats klura ut felkodningen, men nu har jag ett annat bekymmer, jag har fått programmet att fungera med denna kod:

#include<iostream> using namespace std; int main() { int i = 0; float totalTemp = 0; while (i <= 24) { cout << "Ange temperatur f\x94r timme\n" << i <<":\n"; int newTemp; cin >> newTemp; totalTemp = totalTemp + newTemp; i++; cout << "Medeltemperaturen f\x94r dygnet \x84r" << totalTemp / 24 << "grader\n"; } }

Nu får jag upp i prorammet:
Ange temperatur för timme0:13
Medeltemperaturen för dygnet är0.541667graderAnge temperatur för timme1:
Nu är det en estetisk sak jag skulle vilja åtgärda, jag skulle vilja ha ett mellanslag så det ser ut såhär:
Ange temperatur för timme 0: 13
Medeltemperaturen för dygnet är ******
Ange temperatur för timme 1:

Förstår ni? Så att medeltemperaturen visas enskilt under Ange temperatur, och ange temperatur alltid är på enskild rad? Har googlat och testat och det känns väldigt basic men lyckas inte få till det.

Av Rikurt

Tack. Jag tror att jag fattade, lyckades få bort felkoderna så programmet gick att köra. Nästa problem är att när det körs är det bara en svart ruta 😂

Av Rikurt

C++ felkoder till uppgift

Hej,

Jag håller på att läsa programmering 1, och jag har fastnat lite, den handlar om att felsöka kod, jag har lyckats få bort ca 5 felmeddelanden, och nu är det en { som sabbar, och testat massor av varierade lösningar, men får antingen mer felmeddelanden eller fel i koderna. Är det någon som kan förklara vad jag missar? Nedan är koden:

Felkoderna som blir är båda på samma och:
Expected a declaration
'{': missing function header(old style format list?)

#include<iostream>

using namespace std;

int main()

{

int i=0;
while (i <= 24);
}
{ <-//Denna som felkodar
cout << "Ange temperatur för timme" << i << ":";
int newTemp
cin >> newTemp;
totalTemp = totalTemp + newTemp;
i++;

cout << "Medeltemperaturen för dygnet är" totalTemp = 24 << "grader";

}