Informatică, întrebare adresată de lavinianiorba51, 8 ani în urmă

Repedee ! Mai am 2 ore la dispozitie ! Cum pot sa schimb numele unui fisier cu numele citit de la tastaura ex am fisierul "nume.data" si vreu sa se schimbe in ex "Maria.data"
Am aflat de rename , dar ila schimba numele doar daca stii numele , dar cum sa fac daca nu il stiu ? Va dau codul daca aveti nevoie , am facut 1 fisier in care citesc un nume si vreau ca al doile fisier sa aiba numele citit in primul fisier in variabila nume . Multumesc !


robertanisoiu: Codul este mai jos:
robertanisoiu: #include
#include
#include
#include
using namespace std;

int main()
{
string nume, nume1;
char vechi[] = "nume.data";
int rezultat;
ofstream fout;
fout.open("date.data");
cout<<"Dati numele persoanei: ";
cin>>nume;
fout< fout.close();

ifstream fin;
fin.open("date.data");
getline(fin, nume1);
fin.close();

string nume2 = nume1+string(".data");

int n = nume2.length();

char nou[n + 1];

strcpy(nou, nume2.c_str());

rezultat = rename(vechi, nou);

return 0;
}
robertanisoiu: in folderul unde ai acest program trebuie sa ai si un fisier "nume.data"
robertanisoiu: Fisierul va fi redenumit cu ce introduci ca nume de la tastatura
robertanisoiu: <>
robertanisoiu: #include
robertanisoiu: iostream, fstream, cstring, cstdio
lavinianiorba51: Ma poti ajuta sa fac schimbarile de nume , daca te rog ? ca am gen de facut la 2 una sa fie nume.data si una nume.zodia ...

Răspunsuri la întrebare

Răspuns de catlyfraggin
0

Pai trebuie sa mearga cu rename, doar dai click dreapta si apesi rename si schimbi numele.

Anexe:

lavinianiorba51: Nu la asta mă refeream ... Adică fac un fisier in C++ si vreau ca sa imi puna numele fișierului cu cel pe care îl citesc de la tastatura
catlyfraggin: foloseste ,,Boost::Filesystem::rename"
lavinianiorba51: incerc acum
lavinianiorba51: mersii mult
Răspuns de robertanisoiu
1

Răspuns:

#include <fstream>

#include <iostream>

#include <cstring>

#include <cstdio>

using namespace std;

int main()

{

   string nume, nume1;

   char vechi[] = "nume.data";

   int rezultat;

   ofstream fout;

   fout.open("date.data");

   cout<<"Dati numele persoanei: ";

   cin>>nume;

   fout<<nume;

   fout.close();

   ifstream fin;

   fin.open("date.data");

   getline(fin, nume1);

   fin.close();

   string nume2 = nume1+string(".data");

   int n = nume2.length();

   char nou[n + 1];

   strcpy(nou, nume2.c_str());

   rezultat = rename(vechi, nou);

 return 0;

}

Explicație:

In folderul unde pui acest programel trebuie sa ai un fisier "nume.data". Acest fisier o sa fie redenumit cu ce introduci de la tastatura


lavinianiorba51: Nu, n am văzut eu
lavinianiorba51: Ce face char[n+1]?
robertanisoiu: char nou[n+1]. "nou" este variabila in care se va prelua numele din fisier si extensia ".data". n este lungimea numelui citit din fisier.
robertanisoiu: Ruleaza programelul si vezi ce face. O sa-ti citeasca nu nume de la tastatura, de exemplu "Maria", o sa-l scrie intr-un fisier, inchide fisierul, il deschide, citeste "Maria" din el si-ti schimba denumirea fisierului "nume.data" in "Maria.data". Repet, in folderul unde ai programelul trebuie sa ai un fisier care sa se numeasca "nume.data"
lavinianiorba51: ifstream myName ; myName.open("nume.data") ?
lavinianiorba51: Functioneaza
robertanisoiu: Stiam...Il testasem
lavinianiorba51: Buna ... si eu daca trebuie sa fac 3 fisiere din unul citesc de ex agenda si inca doua cu .data si .zodie
lavinianiorba51: Cum pot sa declar ceva de genu' fileData = nume+".data"? si unul la fel cu fileZodie=nume+"zodie" ca eu nu m am exprima corespunzator , am pus o intrebare ... Multumesc ca m ai ajutat pana acum :)
lavinianiorba51: Pfffff... scuuze , din gresala am dat coroana gresit ... coroana apare la finalul intrebarii ...
Alte întrebări interesante