Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Ongelmia tallentamisen kanssa (c++)

Sivun loppuun

Cc [23.05.2006 18:46:50]

#

Teen harjoitus ohjelmaa tässä näin ja törmäsin mielenkiintoiseen ohjelmaan, jota en (yllätys yllätys) osaa korjata.

Ongelma: Yritän tallentaa tiedostoon päivämäärän ja ohjelma sekoaa täysin ja tallentaa kylläkin tiedostoon päivämäärästä osan eli ekaan pisteeseen asti.

OS: Linux

Koodi:

#include <iostream>
#include <stdio.h>
#include <fstream>

using namespace std;

int tallenna(int kkerta, char *teksti);

int main() {

	while(1)
	{
		char valinta = 0;
		cout << endl << "Tervetuloa Harjoitus päiväkirjaan" << endl;
		cout << "<------------------------------->" << endl;
		cout << "1.Lisää uusi harjoitus kerta." << endl;
		cout << "2.Tarkastele viimeisintä harjoitusta." << endl;
		cout << "3.Poistu ohjelmasta." << endl;
		cout << "<------------------------------->" << endl;
		cout << "Anna valintasi:" << endl;
		cin >> valinta;

		if(valinta == '1')
		{
			char valinta2 = 0;
			cout << "1.Laji1." << endl;
			cout << "2.Laji2." << endl;
			cin >> valinta2;
				if(valinta2 == '1')
				{

					char tulos;
					int kkerta;
					kkerta = 0;
					tulos = '0';
					cout << "Anna käyntikerta:" << endl;
					cin >> kkerta;
					cout << "Anna mielipiteesi harjoituksestasi:" << endl;
					cin >> tulos;
					tallenna(kkerta, &tulos);
				}

		}

		if(valinta == '3')
		{
			break;
		}

		if(valinta != '1' && valinta != '3')
		{
			cout << endl << "Virheellinen valinta." << endl;
			continue;
		}
	}

	return EXIT_SUCCESS;
}

int tallenna(int kkerta, char *teksti)
{
  ofstream file("//home/jookoo/Desktop/harkka.txt");
  if(file.is_open())
    {
      file << kkerta;
      file.close();
    }
  else printf("Virhe tallentaessa.");
}

(PS: jos joku viitsii keksiä minulle jonkun harjoitus työn olisin kiitollinen)

Kiitokset vastanneille!

PSS: Kertokaa sitten myös mikä tuossa ja miksi se ei toimi ja miten voisin tehdä kaiken paremmin, koska sitten tajuasin enemmän ja olisin (omasta mielestäni ainakin) parempi koodari =) kun ymmärtäisin jotain.

Tzaeru [23.05.2006 19:36:27]

#

Sää unohdat kirjoittaa ton teksti-muuttujan harkka.txt-filuu.

Ite tein pienempänä just tälläsiä harjoituksia ja tahalteni yritin keksiä mahdollisimman monimutkaisia ehto-lauseita yms :) ja jossakin vaiheessa aloin kokeilla sitä olioidenki kanssa.. Tällä hetkellä harjoittelen graafista ilmaisua (siis ohjelmoimalla, ei minkää näytelmän vuorosanojen kanssa), mutta matskuni kusasee :D

(btw: yhdys sana => yhdyssana; harjoitus työ => harjoitustyö; harjoitus ohjelmaa => harjoitusohjelma; Harjoitus päiväkirjaan => Harjoitus-päiväkirjaan; harjoitus kerta => harjoituskerta)

Cc [23.05.2006 19:42:39]

#

Juuh en ole kovin hyvä noiden yhdyssanojen kanssa =) en mie viel ookkaa kirjottaas tota teksti muuttujaa ku toi ekakaa muuttuja ei kirjoitutu (?) oikein =)

Tzaeru [23.05.2006 20:08:47]

#

Mä vähän veikkaisin, että se johtuu tosta intistä. Kokeileppa vaihtaa se sellaiseksi kuin 'float'. Itellä ainakin lähti sit toimimaa :)

Syy (luulisin): Int = Integer = Kokonaisluku.

EDIT: ainiijoo, mut tossahan voit lisätä vain yhden desimaalin, nii jotta voit lisätä useampia, sen pitäs olla esim. string, merkkijono siis. Eihän numerot ole merkkejä, tässä tapauksessa pisteitä :)

Jaska [23.05.2006 20:30:30]

#

Cc kirjoitti:

Juuh en ole kovin hyvä noiden yhdyssanojen kanssa =)

Sitten kannattaa vilkaista jotakin suomen kielen oppikirjaa. On todella paljon miellyttävämpää lukea kieliopillisesti oikein kirjoitettua kuin kielioppivirheitä vilisevää tekstiä.

Cc [23.05.2006 21:26:54]

#

olen saannut ratkaistua stringien avulla tuon ongelmani, mutta törmäsin uuteen ongelmaan, miten tuota tallenna funktiota pitäisi muokata, että se ei tallentaisi uutta merkkijonoa vanhan merkkijonon päälle vaan siirtäisi vanhan/vanhat merkkijonot yhden alaspäin ja laittaisi ylimmäksi uusimman merkkijonon?

Blaze [23.05.2006 21:40:08]

#

Lukemalla koko tiedoston muistiin, tyhjentämällä sen, kirjoittamalla uuden rivin ensimmäiseksi ja nuo alussa luetut sen perään.
Joo, hölmöläisten hommaa, laita suosiolla viimeiseksi. Viimeiseksi sen saa avaamalla tiedoston append-moodissa (writen sijaan) ja kirjoittamalla ihan tavallisesti.

Cc [23.05.2006 21:51:46]

#

kiitos kaikille sain toimimaan...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta