Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selesaikan masalah "ralat: jangkaan primer-ungkapan sebelum 'datatype'" dalam kod C++

Selesaikan masalah "ralat: jangkaan primer-ungkapan sebelum 'datatype'" dalam kod C++

WBOY
WBOYasal
2023-08-26 22:52:451172semak imbas

解决C++代码中出现的“error: expected primary-expression before 'datatype'”问题

Selesaikan masalah "ralat: jangkaan primer-ungkapan sebelum 'datatype'" dalam kod C++

Apabila menulis kod C++, kadangkala kita menemui mesej ralat "error: expected primary-expression before 'datatype'" . Ralat ini biasanya berlaku apabila kita menggunakan nama pembolehubah atau fungsi tanpa mengikut peraturan sintaks yang betul. Artikel ini akan menerangkan kepada anda punca ralat ini dan menyediakan beberapa penyelesaian.

Mula-mula, mari lihat contoh kod untuk memahami ralat ini dengan lebih baik.

#include <iostream>

int main() {
    int x = 5;
    std::cout << x + std::endl;  // error: expected primary-expression before 'endl'
    return 0;
}

Dalam contoh ini, kami ingin mengeluarkan nilai pembolehubah x ditambah dengan hasil std::endl. Walau bagaimanapun, pengkompil akan mengadu dengan mesej ralat berikut: "error: expected primary-expression before 'endl'". x 的值加上 std::endl 的结果。然而,编译器会报错并给出以下错误消息:“error: expected primary-expression before 'endl'”。

我们可以清楚地看到,这个错误是由于我们在输出语句中没有遵循正确的语法而引起的。

该错误的原因有如下几种:

  1. 忘记包含必要的头文件:error: expected primary-expression before 'datatype'

在C++中,我们需要包含相应的头文件才能使用一些特定的数据类型和函数。如果我们忘记包含所需的头文件,编译器将无法识别特定的数据类型和函数,从而导致该错误的出现。

#include <iostream>

int main() {
    string name = "John";  // error: expected primary-expression before 'string'
    std::cout << name << std::endl;
    return 0;
}

在这个示例中,我们忘记了包含 98c455a79ddfebb79781bff588e7b37e 头文件,所以编译器无法识别 string 类型,并报错:“error: expected primary-expression before 'string'”。

解决这个问题的方法是在代码中包含所需的头文件。

#include <iostream>
#include <string>

int main() {
    std::string name = "John";
    std::cout << name << std::endl;
    return 0;
}

在修改之后,代码将能够正确编译和执行。

  1. 使用未定义的变量或函数名称:error: expected primary-expression before 'datatype'

在C++中,当我们使用变量或函数名称时,必须确保它们已经在代码中定义过。如果我们使用一个未定义的变量或函数名称,编译器将无法识别它,并报错:“error: expected primary-expression before 'datatype'”。

#include <iostream>

int main() {
    int x = 5;
    std::cout << y << std::endl;  // error: 'y' was not declared in this scope
    return 0;
}

在这个示例中,我们尝试输出变量 y 的值。然而,变量 y

Kami dapat melihat dengan jelas bahawa ralat ini disebabkan oleh kami tidak mengikut sintaks yang betul dalam pernyataan output.

Sebab ralat ini adalah seperti berikut:

  1. Terlupa memasukkan fail pengepala yang diperlukan: ralat: jangkaan ungkapan primer sebelum 'datatype'
Dalam C++, kita perlu memasukkan fail pengepala yang sepadan untuk menggunakan beberapa jenis data dan fungsi tertentu. Jika kita terlupa memasukkan fail pengepala yang diperlukan, pengkompil tidak akan mengenali jenis dan fungsi data tertentu, yang membawa kepada ralat ini.

#include <iostream>

int main() {
    int x = 5;
    int y = 10;
    std::cout << y << std::endl;
    return 0;
}

Dalam contoh ini, kami terlupa untuk memasukkan fail pengepala e16aab792c943d9fbb1e2df2ac188ec2 jadi pengkompil tidak mengenali jenis string dan melaporkan ralat: "error: expected primary-expression before 'string '".

Penyelesaian kepada masalah ini ialah dengan memasukkan fail pengepala yang diperlukan dalam kod anda. 🎜rrreee🎜Selepas pengubahsuaian, kod akan disusun dan dilaksanakan dengan betul. 🎜
  1. Penggunaan pembolehubah tidak ditentukan atau nama fungsi: ralat: jangkaan ungkapan primer sebelum 'datatype'
🎜dalam C++ , apabila kita menggunakan nama pembolehubah atau fungsi, kita mesti memastikan bahawa ia telah ditakrifkan dalam kod. Jika kami menggunakan pembolehubah atau nama fungsi yang tidak ditentukan, pengkompil tidak akan mengenalinya dan akan melaporkan ralat: "ralat: jangkaan ungkapan primer sebelum 'datatype'". 🎜rrreee🎜Dalam contoh ini, kami cuba mengeluarkan nilai pembolehubah y. Walau bagaimanapun, pembolehubah y tidak ditakrifkan dalam kod, jadi pengkompil tidak dapat mengenalinya dan melaporkan ralat: "ralat: 'y' tidak diisytiharkan dalam skop ini". 🎜🎜Cara untuk menyelesaikan masalah ini adalah dengan memastikan pembolehubah atau nama fungsi yang digunakan sudah ditakrifkan dalam kod. 🎜rrreee🎜Selepas pengubahsuaian, kod akan disusun dan dilaksanakan dengan betul. 🎜🎜Untuk meringkaskan, apabila kami menemui mesej ralat "ralat: ungkapan primer dijangka sebelum 'datatype'" dalam kod C++, kami perlu menyemak kemungkinan fail pengepala yang hilang dan memastikan bahawa pembolehubah atau nama fungsi yang digunakan telah ditakrifkan dalam kod . Mengikuti peraturan sintaks yang betul akan membantu menyelesaikan masalah ini supaya kod menyusun dan melaksanakan dengan betul. 🎜🎜Semoga artikel ini dapat membantu anda menyelesaikan masalah ini! 🎜

Atas ialah kandungan terperinci Selesaikan masalah "ralat: jangkaan primer-ungkapan sebelum 'datatype'" dalam kod C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn