windows - Funktionssystem i C ++ virker ikke korrekt, eller jeg kompilerer ikke korrekt med MinGW, hjælper mig

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en C + + kode (main.cpp)


#include <windows.h>
#include <fstream>
#include <stdio.h>
#include <string>
int main ()
{
  system("cd \%appdata\% & mkdir test");
  system("Pause");
}  


Jeg kompilerer ved hjælp af MinGW:


"mingw32-g++.exe" main.cpp -o main.exe


Når jeg kører main.exe, laver det et diriectory i den nuværende mappe, ikke den forventede mappe \%appdata\%.


Men når jeg kompilerer ved hjælp af Code :: Blocks, fungerer det korrekt (det gør en mappe i\% appdata\%)


Hvordan kan jeg kompilere (med kommandolinje i Windows, ikke bruge Code :: Blocks) og få programmet til at virke som jeg forventer?

Bedste reference


Jeg vil gætte, at i MinGW-sagen udfører du programmet fra et andet drev end den, der indeholder \%AppData\% (næsten altid C :), og i Code :: Blocks-sagen udføres du fra det samme køre som \%AppData\%. En måde at sikre, at du altid er på det rigtige drev, er at tilføje /d til kommandoen cd:


system("cd /d \%appdata\% & mkdir test");


Fra cd /?:



  Brug/D-knappen til at ændre det aktuelle drev ud over at ændre strømmen
  mappe til et drev.