Pobieranie wpisywanego tekstu, formatowanie tekstu.

Odpowiedz Nowy wątek
2011-09-04 14:14
0

Cześć, dzisiaj zacząłem pisać program, bawię się, zobaczymy co z tego wyjdzie.

Mam kilka problemów, ktoś pomoże rozwiązać?

ROBIĘ W KONSOLI!

  1. Jak pobrać wpisany tekst.
  2. Jak sformatować np. jak w pawn format(s, sizeof s, "cos-%s", tekst);

W razie kłopotów będę dopisywał.

Mój dotychczasowy kod :

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
if(CopyFile("text.txt", "folder/text.txt", false) == true)
{
cout << "Skopiowanie powiodlo sie!\n";
}
else
{
cout << "Skopiowanie niepowiodlo sie!\n";
}

system("PAUSE");
return EXIT_SUCCESS;

}

edytowany 3x, ostatnio: Przemek_, 2011-09-04 14:17

Pozostało 580 znaków

2011-09-04 14:18
2011-09-04 14:20
0

Dziękuje za linki, ale chciałbym prosić o wytłumaczenie, lub link w języku polskim, umiem z deka angielski, ale żeby nauczyć się czegoś, będzie większy kłopot.

Pozostało 580 znaków

2011-09-04 14:22
0

Jeszcze większy kłopot będziesz miał programując, a nie znając angielskiego :P


Pozostało 580 znaków

2011-09-04 14:24
0

Patryk - umiem angielski, ale wolałbym w języku polskim (PS. z cinem sobie już poradziłem, tylko to formatowanie coś nie rozumiem)

Teraźniejszy kod :

#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{
char a[50], buffer [256];
cout << "Prosze podaj nazwe modyfikacji : \n";
std::cin >> a;

if(CopyFile(a, buffer, false) == true)
{
  cout << "Skopiowanie powiodlo sie!\n";
}
else
{
  cout << "Skopiowanie niepowiodlo sie!\n";
}

system("PAUSE");
return EXIT_SUCCESS;

}

Chodzi mi oto teraz, aby buffer przyjmował
C:\Documents and Settings\Przemek\Dane aplikacji.Minecraft[TUTAJ TEXT Z TABLICY A]

edytowany 1x, ostatnio: Przemek_, 2011-09-04 14:29

Pozostało 580 znaków

2011-09-04 17:27
0
#include <fstream>
#include <vector>
//...
int main()
{    
    ifstream in ("text.txt");
    vector<string> linePack;
    string line;
    while(getline(in, line))
        linePack.push_back(line);
 
    for(int i = 0; i < linePack.size(); i++)
        cout << linePack[i];
 
    return 0;
}

Gdy się nie wie, co się robi, to dzieją się takie rzeczy, że się nie wie, co się dzieje ;-)
edytowany 2x, ostatnio: madmike, 2011-09-04 18:23
<code=cpp>(kod)</code> - Patryk27 2011-09-04 17:37
Nie zamknąłem kodu, zostawiłem <cpp>(kod) i dałem wyślij - MJay 2011-09-04 18:28

Pozostało 580 znaków

2011-09-04 18:21
0

Dawno to zrobiłem, mój kod wygląda tak:

#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   char a[50], buffer [256], b[50];
    cout << "Wpisz co chcesz zrobic (save/modyfikacja)";
    std::cin >> b;
    if(!strcmp(b, "save"))
    {
    cout << "Prosze podaj nazwe savu : \n";
    std::cin >> a;
    int n;
    n=sprintf (buffer, "C:\\Documents and Settings\\Przemek\\Dane aplikacji\\MinecraftTest\\%s", a);
    if(CopyFile(a, buffer, false) == true)
    {
      cout << "Skopiowanie powiodlo sie!\n";
    }
    else
    {
      cout << "Skopiowanie niepowiodlo sie!\n";
    }
}
else
{
    cout << "Tryb nie dokończony!\n"; 
}
 
    system("PAUSE");
    return EXIT_SUCCESS;
}

Teraz mam inne problemy, zaraz edytuje pierwszy topic!
Nie mogę jednak, piszę nowy temat tem można zamknąć!

edytowany 1x, ostatnio: Przemek_, 2011-09-04 18:23
skoro używasz przestrzeni nazw "std" to po co przy cin jeszcze raz wstawiasz zakres std? - MJay 2011-09-04 18:32

Pozostało 580 znaków

2011-09-04 20:14
0

W tym kodzie są większe niedociągnięcia niż powtarzanie std przed cinem. Kwestia pierwsza to nielimitowane wpisywanie do buforów, tak NIE MOŻNA robić, std::string byłby tutaj najlepszy. Jest to zbyt niebezpieczne i nie powinno być uczone. Dodatkowo można się doczepić do braku wcięć (choć to bardziej utrudnia twórcy), deklaracje i przypisanie zmiennej prawie zawsze umieszcza się w jednej linii, system("PAUSE") jest także mocno niezalecany. Nazwy zmiennych powinny być dłuższe, jednoliterowych używa się jako indeksy (i,j,k, tradycja wywodząca się jeszcze z FORTRANA), lub jak jest to jednoznaczne (x,y współrzędne itp.).

edytowany 1x, ostatnio: Zjarek, 2011-09-04 20:14

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0