Korzystam z francuskiego systemu Windows 7 i próbuję skompilować ten naprawdę prosty program, ale Visual Studio jest uparty i odmawia spełnienia. Próbowałem też skompilować go z GCC 4.7 i Trangiem Clanga na Coliru i dostaję mniej więcej te same błędy (dane wyjściowe są poniżej kodu), choć myślę, że Coliru działa na angielskim systemie operacyjnym, więc nie spodziewałbym się, że i tak zadziała .
Co ja robię źle? Jak mogę to naprawić?
Kod
#inclure <iostream>
ent principal(ent argn, ent** argm) // entier, nombre d'arguments, valeur des arguments
{
std::cendehors << "Bonjour le monde!\n";
renvoi SORTIE_SUCCÈS;
}
Wynik
principal.cpp:1:6: erreur: prétraitement de la directive invalide #inclure
#inclure <iostream>
^
principal.cpp:6:8: erreur: '\303' égaré dans le programme
renvoi SORTIE_SUCCÈS;
^
principal.cpp:6:8: erreur: '\210' égaré dans le programme
principal.cpp:3:5: erreur: «ent» ne désigne pas un type
ent principal(ent argn, ent** argm) // entier, nombre d'arguments, value des arguments
^
c++
visual-studio-2013
french
Lekkość Wyścigi na orbicie
źródło
źródło
std::findeligne
zamiast\n
postaci :)iostream
prawidłową nazwę nagłówka w języku francuskim?Odpowiedzi:
Wiele problemów wynika z buforowania , ale twój jest jednym z innych trudnych problemów : nazywanie rzeczy. Tak, lokalizacja jest trudna.
Nie wspomniałeś o tym, którego wariantu francuskiego używasz, ale z komunikatu o błędzie myślę, że używasz „francuskiego (Francja)” (jak nazywają to my, użytkownicy cywilizowanych systemów operacyjnych
fr_FR
). Ustawieniafr_FR
regionalne MS zachowują się w bardzo dziwny sposób: wielkie litery akcentowane są odwzorowywane na ich nieakcentowany odpowiednik (dla kompatybilności wstecznej z niektórymi modelami maszyn do pisania). Więc musisz pisaćSORTIE_SUCCES
zamiastSORTIE_SUCCÈS
.Obejściem tego problemu jest użycie języka „francuskiego (Monako)” (
fr_MC
) , w którym wielkie litery z akcentami działają zgodnie z oczekiwaniami. Niestety wersja kompilatora w Monako jest bardzo droga. Możesz także użyć wersji kanadyjskiej francuskiej, francuskiej belgijskiej lub szwajcarskiej francuskiej, ale wszystkie one wymagają przesłania dwujęzycznego (fr_CA
+en_CA
), trójjęzycznego (fr_BE
+nl_BE
+de_BE
) lub czterojęzycznego (fr_CH
+it_CH
+de_CH
+rm_CH
) pliku źródłowego. Afrykańskie warianty francuskiego są obecnie dostępne, ponieważ są zbyt słabe, aby pozwolić sobie na kompilator C ++, jednak zamiast tego można użyć C.Potem są inne błędy składniowe w twoim programie:
Wollun wypróbowałem następujący kod w kompilatorze C ++ zawartym w Émaxe 51,70 i to zadziałało:
Niektóre języki mają lepszą obsługę internacjonalizacji niż C ++. Na przykład, oto program w LOGO (oczywiście nie należy go mylić z LOGO ).
źródło
Problem polega oczywiście na tym, że dołączasz niewłaściwy standardowy nagłówek:
Powinien być:
Przekonasz się również, że działa to znacznie lepiej, jeśli używasz Studio Visuel Micromou lub narzędzi CCG (skrót od „Collection de Compilateurs GPU”, btw), a nie ich bardziej popularnych krewnych z MVS lub GCC.
źródło
.e
rozszerzenia. Ale oczywiście, standardowe rozszerzenia, takie jak.e
,.ee
,.epp
preferowane są umownie ... Szczegółowe informacje: stackoverflow.com/questions/441568/...Wystąpił błąd semantyczny - drugi argument funkcji wprowadzania powinien być typu
cara**
, a nieent**
:Za
<iostream>
błąd @MartinJ. już poprawnie wskazałem, że powinieneś używać<esflux>
zamiast tego.Jeśli chodzi o inne błędy, wydaje się, że twój kompilator po prostu strike. Może się to czasem zdarzyć przy kompilacji kodu francuskiego i powinno się naprawić za kilka dni.
źródło
To nie jest program BASIC, więc Visual Studio nie wie, co z nim zrobić.
Ponadto w systemie francuskim musisz przekazać program do kompilatora.
źródło
Hello Légèreté fait la course en orbite ,
Chciałbym podkreślić, że mimo przestrzegania wszystkich podanych tutaj odpowiedzi program nadal nie będzie się kompilował z powodu interpunkcji. Średniki są poprzedzone nieprzerwaną spacją po francusku.
Poleciłbym następujące:
Proszę zauważyć, że zmieniłem
argn
nanarg
, ponieważ jest to bardziej naturalne w języku francuskim (choć nie ma to nic wspólnego z węgierskimi notacjami)!Edycja: zgodnie z zaleceniem Angew
źródło
Prawie wszystko zostało omówione w poprzednich odpowiedziach, ale jeśli mogę dodać:
to Certes dozwolone, ale dodaje się zwykle korzystne jest:
źródło
Musisz odwołać się do francuskiego preprocesora:
hummm ... za późno, to jest przestarzałe. Nowa wersja będzie dostępna w tym tygodniu.
źródło
Zdaję sobie sprawę, że nie dotyczy to tej konkretnej sytuacji, ale ważne jest, aby pamiętać o płci swoich obiektów podczas programowania w języku francuskim. Istnieją 2 rodzaje klas (
genre
)genre::masculins
igenre::féminin
Na przykład:
Ponadto podczas przekazywania
this
do innej funkcji wywołanie funkcji jest poprzedzane listą parametrów, a nie przyrostkiem:lub
Aby uzyskać dodatkowe informacje: Wikipedia Word Order
źródło
Co się stanie, jeśli spróbujesz ponownie po godzinach lunchu (12–22)? Ponadto, jeśli dostaniesz więcej niż jeden procesor, mogą one być w trakcie strajku. Możesz jednak odzyskać swój proces za pomocą tego (francuskiego) polecenia Windows 7:
Powtórz, gdy utkniesz (ale nie zapomnij za każdym razem zmniejszać liczby!).
źródło
set pension-starting-age = 62
może też pomóc, może zmienić sięset pension-starting-age = 60
wkrótce ...Wygląda na to, że zapomniałeś zainstalować
FrenChPP++
pakiet. Po udanej instalacji (FrenChPP++
jeśli nie ma pakietów binarnych dla twojego systemu , będziesz musiał skompilować na standardowym kompilatorze c ++ (my w Unauthorized Frog zalecamy do tego g ++, ale możesz też użyć clang, ale zignoruj ostrzeżenia)) musisz utworzyć nowy projekt i po prostu skopiować go do nowo utworzonegoprincipal.fcpp
pliku. Następnie po uruchomieniuFrenChPP++
prekompilator (który działa bardzo podobnie do sposobu, w jaki Qt obsługuje swój sygnał / mechanizm szczeliny) przeanalizuje wszystkie.fcpp
pliki i „przetłumaczy” je.fcpp
na poprawne,.cpp
a następnie skompiluje je przy użyciu domyślnego kompilatora systemu.źródło
Prawdopodobnie musisz zainstalować pakiet języka francuskiego dla C ++ 11. Jeśli nie możesz go znaleźć, spróbuj http://www.bing.com/translator .
źródło
W twoim kodzie jest tyle błędów, że większość z nich została już rozwiązana w innych odpowiedziach. Ale czy nie wiesz, że twórcy
C++
zaprojektowali go tak, aby kod źródłowy programu nie był dość długi po przetłumaczeniu?To nie jest
std::cendehors
, alestd::deh
(skrót od dehors ) jakstd::cin
tłumaczy sięstd::ded
(dla dedans ).Zauważ też, że kiedyś były kompilatory, które nie uruchamiały się automatycznie
\n
, więc lepiej jest używaćstd::findl
( fin de ligne ). Tak powinno być tak:EDYCJA: Przepraszam, nie zauważyłem kolejnego błędu. Prawidłową formą jest oczywiście użycie takich gilemetów:
źródło
Nie można używać francuskich słów kluczowych w programie C ++ (lub C). Powinieneś zakodować
I podobnie
i oczywiście kod
int main(int argc, char**argv)
itp ...(dzięki za żart primaaprilisowy!)
źródło
Ponieważ pan George Bush zakazał frytek na rzecz smaczniejszych frytek Liberty (i mniej smacznych, ale równie patriotycznych frytek Freedom), inne amerykańskie korporacje również wycofują wsparcie dla francuskich produktów.
Musisz użyć kompilatora sprzed 2003 roku lub wysłać wiadomość na adres http://www.whitehouse.gov/contact/submit-questions-and-comments, aby zapytać, czy planują wkrótce przywrócić sytuację.
źródło
Po pierwsze musisz
zanim będzie można użyć stałej SORTIE_SUCCÈS.
Innym problemem związanym z kodem C ++ jest to, że zapomniałeś użyć std :: lend, a zamiast tego użyłeś „\ n” w ciągu wyjściowym - nie będzie działać w kodzie francuskim, oczywiście, tylko kod napisany w języku angielskim i rosyjskim jest dozwolony aby to zrobić.
Co więcej, użyłeś niewłaściwego wcięcia (GCC w języku francuskim wymaga tabulacji zamiast spacji) i umieszczenia nawiasów klamrowych (musisz umieszczać nawiasy klamrowe w tej samej linii, gdy jest to możliwe, nie wolno między nimi odstępów); pozostawienie ich bez zmian spowoduje wygenerowanie błędów uruchomieniowych w kodzie „vous ne connaissez pas votre tabulation, Jacques” i „pas assez d'amour entre accolades”.
Po zmianie tych wierszy kod został pomyślnie skompilowany. Nadal nie działa, prawdopodobnie z podanych tutaj powodów .
Snippet: http://ideone.fr/sQbL6E
źródło