Napraw ciąg błędu C ++ jest niezdefiniowany

Napraw ciąg błędu C ++ jest niezdefiniowany
Kiedy wykonujemy program, od czasu do czasu uzyskujemy dziwne wyniki zamiast pożądanego wyjścia. Nieokreślony ciąg w programowaniu C ++ odnosi się do tego, gdy program nie kompiluje, gdy wykonuje źle, awarie lub daje niedokładne wyniki lub gdy robi to dokładnie niezależnie od tego, co programista zamierzał przypadkowo. Uważa się, że ma niezdefiniowany błąd ciągów, gdy wynik uruchomionego programu jest niepewny.

W tym artykule rozwiążemy niezdefiniowany ciąg w efektywny sposób obsługiwany przez język programowania C ++. Zrozumienie niezdefiniowanych wyjątków ciągów jako programatora C ++ jest niezbędne do skutecznego kodowania i wydajności programu, szczególnie gdy kody C ++ są zintegrowane z architekturą systemu.

Podejście do naprawy błędu „ciąg jest niezdefiniowany” w C++

Jeśli jesteś nowy w języku programowania C ++, możesz napotkać błędy, takie jak ciąg C ++, jest niezdefiniowany. W C ++ mamy dwa sposoby rozwiązania błędu dla nieokreślonego ciągu.

  1. przestrzeń nazw Std: Przestrzeń nazw Std oznacza, że ​​używamy przestrzeni nazw. „STD” to akronim dla standardu. W rezultacie używamy wszystkiego w przestrzeni nazw „STD”. Musimy użyć przestrzeni nazw z słowem kluczowym używanym w sekcji nagłówka, aby zastosować go do całego pliku.
  2. STD :: String: Definicja C ++ zawiera metodę reprezentowania serii znaków jako obiektu klasowego. Ta klasa jest znana jako STD :: String. Ponieważ zmienna łańcucha jest dostępna w przestrzeni nazw STD, więc używamy STD :: String za każdym razem, gdy deklarujemy ciąg w kodzie. STD jest używany z operatorem rozdzielczości zakresu w języku programowania C ++.

Przykład 1

Tutaj w naszym pierwszym przykładzie pokażemy, w jaki sposób kompilator C ++ rzuca błąd ciągu, jest niezdefiniowany. Na początku naszego programu zaimportowaliśmy bibliotekę o nazwie „Iostream”. Iostream to plik nagłówka w C ++, który określa zbiór standardowych funkcji wejściowych i wyjściowych. Zawiera także obiekty strumienia we/wy, takie jak CIN, cout, Clog i tak dalej. Cout jest wykorzystywany do wyświetlania danych wyjściowych „Wprowadź swoje imię”.

Po tym wierszu mamy polecenie CIN, które pobiera dane wejściowe od użytkownika dla ciągu „Namest”. Za pośrednictwem polecenia Cout wyświetlone zostaną wyjście i wejście. „Powrót 0” użyty na końcu głównej funkcji wykonuje funkcję pomyślnie.

#włączać
int main ()

String Namester;
Cout << "Enter your name "NameStr;
Cout << "Your Name : " << NameStr << endl;
powrót 0;

Możesz zauważyć, że kompilacja powyższego programu podaje błąd w ten sposób, a także sugeruje sposób deklarowania ciągu w głównej funkcji. Mamy nieoczekiwany wynik z powyższego wykonania.

Przykład 2

Powyższy program ilustracji rzuca nieokreślony błąd ciągu. Teraz musimy rozwiązać błąd String Undefined za pomocą przestrzeni nazw STD w sekcji pliku nagłówka. Dołączyliśmy plik iostream w programie C++. Poniżej pliku iostream dołączyliśmy plik „przestrzeni nazw” ze słowem kluczowym „Używanie”. Przestrzeń nazw Std pomoże nam pokonać niezdefiniowany błąd ciągu. Następnie utworzyliśmy dwie przestrzenie nazw „liczb całkowity” i „podwójny”.

W bloku przestrzeni nazw „liczb całkowitych” zadeklarowaliśmy dwie zmienne „a” i „b” typu liczb całkowitych i zainicjowaliśmy je wartościami liczbowymi. Zrobiliśmy to samo w bloku „podwójnej” przestrzeni nazw, ale używany typ jest podwójny. Zauważ, że zdefiniowaliśmy zmienne o tych samych nazwiskach „A” i „B” w obu przestrzeni nazw. Jest to właściwość przestrzeni nazw, która pozwala nam zadeklarować zmienne i funkcje o tej samej nazwie.

Następnie mamy główną funkcję, która ma dostęp do zmiennych przestrzeni nazw za pomocą operatora rozdzielczości zakresu. Za pośrednictwem polecenia Cout wyświetlimy wartość zmiennej „A” z przestrzeni nazw „Integer” i wartość zmiennej „B” z przestrzeni nazw „podwójnej”.

#włączać
za pomocą przestrzeni nazw Std;
Strażnik przestrzeni nazw

int a = 2;
int b = 8;

Przestrzeń nazw podwójna

Double A = 1.888;
Double B = 2.745;

int main ()
używając liczby całkowitej :: a;
Za pomocą Double :: B;
Cout << "a="<< a << endl;
Cout << "b="<< b << endl;
Cout << "Integer="<< Integer::a << endl;
Cout << "Double="<< Double::b << endl;
powrót 0;

Otrzymaliśmy oczekiwany wynik, używając przestrzeni nazw STD w sekcji pliku nagłówka powyższego programu.

Przykład 3:

Mamy inny sposób na pozbycie się niezdefiniowanego błędu ciągów, który używa STD z operatorem rozdzielczości zakresu podczas definiowania zmiennej String Typ. W poniższym programie zaimportowaliśmy dwa standardowe pliki „iostream” i „string”, które ładnie skompilowały kod. Główna funkcja jest zdefiniowana, a główny korpus funkcji ma początkowo polecenie STD Cout z operatorem rozdzielczości zakresu. Służy do wyświetlania danych wyjściowych.

Następnie użyliśmy STD z operatorem rozdzielczości zakresu dla zmiennej ciągów. Zapobiegnie błędu ciągu niezdefiniowanego w programie. Polecenie STD CIN otrzyma wartość od użytkownika, a ostatni wiersz ma polecenie STD Cout, które służy do wyświetlania danych wyjściowych i wartości używanych do wprowadzenia.

#włączać
#włączać
int main ()

std :: cout reg_no;
Std :: Cout stopień;
STD :: Cout <<"Your Registartion Number is" << Reg_No << "and Your Degree is " << Degree << '\n';
powrót 0;

Podejście STD :: Zapobiega błędowi, że ciąg jest niezdefiniowany. Wynik jest pokazany na ekranie konsoli Ubuntu.

Przykład 4

Zamiast używać STD z rozdzielczością zakresu z każdą zmienną, funkcją lub poleceniem; Możemy dołączyć STD z operatorem rozdzielczości zakresu, definiując go w sekcji nagłówka ze słowem kluczowym „używanie”. Jak widać, po zaimportowaniu standardowego pliku w C ++, mamy instrukcję STD :: String z słowem kluczowym „Używanie”, a także inne wymagane instrukcje STD.

Następnie mamy funkcję ciągów, a w konstruktorze tej funkcji podaliśmy odniesieniu ciągów „& St”. W bloku funkcji ciągów zdefiniowaliśmy metodę „rbegin” do odwrócenia ciągu i metodę „Rend”, aby zwrócić odwrotny koniec określonego ciągu. Następnie mamy główną funkcję, w której zmienna łańcuchowa jest zdefiniowana i inicjowana.

#włączać
#włączać
#włączać
Używanie std :: cout; Używanie std :: endl;
za pomocą std :: ciąg; Używanie std :: odwrotnie;
String Revstr (String & St)
Odwrotność sznurka (St.rbegin (), st.rozdzierać());
zwrot w odwrót;

int main ()
String MyString = "Odwróć ciąg";
Cout << MyString << endl;
Cout << RevStr(MyString) << endl;
powrót 0;

W ten sposób możemy również zapobiec nieokreślonemu błędowi ciągu. Nie musimy pisać instrukcji STD z każdą deklaracją ciągów w kodzie. Możemy to zdefiniować w sekcji nagłówka tylko raz. Wyniki pokazano na poniższym obrazie.

Wniosek

Teraz dowiedzieliśmy się, jak wyeliminować ciąg niezdefiniowany ciąg w C++. Przeszliśmy przez prawdopodobną przyczynę błędu z uruchomionym przykładem w artykule. Zbadaliśmy program, który nie używał przestrzeni nazw STD i STD :: String, i ustaliliśmy, jak ważne są one w kodzie C ++. Te podejścia z pewnością pomogą programistom uniknąć niezdefiniowanego błędu ciągu.