- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是我教科书中尝试创建顺序访问文件的示例。然而,当我尝试在 VS2008 中编译时,我继续收到此错误:
MSVCRTD.lib(crtexe.obj):错误 LNK2019:函数 ___tmainCRTStartup 中引用了无法解析的外部符号 _main。
有什么想法吗?
提前致谢!
#include <stdio.h>
int main( void )
{
unsigned int account; // account number
char name[ 30 ]; // account name
double balance; // account balance
FILE *cfPtr; // cfPtr = clients.dat file pointer
// fopen opens file. Exit program if unable to create file
if ( ( cfPtr = fopen( "clients.dat", "w" ) ) == NULL ) {
puts( "File could not be opened" );
} // end if
else {
puts( "Enter the account, name, and balance." );
puts( "Enter EOF to end input." );
printf( "%s", "? " );
scanf( "%d%29s%lf", &account, name, &balance );
// write account, name and balance into file with fprintf
while ( !feof( stdin ) ) {
fprintf( cfPtr, "%d %s %.2f\n", account, name, balance );
printf( "%s", "? " );
scanf( "%d%29s%lf", &account, name, &balance );
} // end while
fclose( cfPtr ); // fclose closes file
} // end else
} // end main
最佳答案
好的 - 您的程序应该可以编译和链接而不会出现错误,而无需执行任何特殊操作。换句话说,您不必“#include windows.h”(尽管它不会造成伤害),并且您不必显式使用“tmain()”(即使这是 MSVC 后面的实际条目)宏)。
它应该“正常工作”。
建议:
1) 验证您是否可以编译、链接和执行任何 C 程序。例如:
a) 输入该程序: 记事本tmp.c
#include <stdio.h>
int main() {
printf ("Hello world!\n");
return 0;
}
b) 编译:从 MSVS IDE,或从命令行(您可以使用 MSVS .bat 文件“vcvars32.bat”来设置命令提示符环境:
d:\temp>cl tmp.c
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
tmp.c
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.
/out:tmp.exe
tmp.obj
c:执行程序:D:\temp>tmp
世界你好!
2) 我有一个不同的、较新版本的 MSVS ...但它对于您的 MSVS 2008 应该完全一样工作。
3) 如果您的“hello world”(新的 MSVS 项目和/或命令行构建)因相同的链接错误而失败,您可能需要考虑重新安装 MSVS。如果可能的话,考虑获取更新版本(例如 Visual Studio 2013 Community):
4)如果您的“hello world”有效(并且应该有效),请考虑从头开始创建一个新项目,然后将文件复制到新项目中。
这个完整的示例对我来说编译和运行正常:
#include <stdio.h>
#include <string.h>
#define MAX_NAME 30
#define MAX_LINE 80
#define CLIENTS_FILE "clients.dat"
int main () {
char line[MAX_LINE], acct_name[MAX_NAME];
unsigned int acct_no;
double acct_balance;
int iret;
/* Open file. Print error and return non-zero status if error */
FILE *fp = fopen(CLIENTS_FILE, "w" );
if (!fp) {
perror ("clients file open error");
return 1;
}
do {
/* Get next record */
printf ("Enter the account, name, and balance. \"q\" to exit.\n");
fgets (line, MAX_LINE, stdin);
/* Check for end of data */
if (line[0] == 'q')
break;
/* Parse data */
if ((iret = sscanf(line, "%d %s %lf", &acct_no, acct_name, &acct_balance )) == 3) {
/* Write to file */
fprintf(fp, "%d %s %lf\n", acct_no, acct_name, acct_balance );
} else {
/* Print warning */
printf ("Error: unable to parse input: #/items parsed = %d, line = %s", iret, line);
}
} while (line[0] != 'q');
/* Close file and return "OK" status */
fclose (fp);
printf ("Done.\n");
return 0;
}
关于c - MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27370181/
在用Visual Studio Code调试C/C++文件时,程序流从main函数的'}'行按'step over'或'step into'键进入crtexe.c。 但是,当在 crtexe.c 中继
以下是我教科书中尝试创建顺序访问文件的示例。然而,当我尝试在 VS2008 中编译时,我继续收到此错误: MSVCRTD.lib(crtexe.obj):错误 LNK2019:函数 ___tmainC
我一直收到以下两个错误,我不知道为什么。 error LNK2019: unresolved external symbol _main referenced in function ___tmain
我正在帮助一位 friend 学习 C++,但老实说,我们需要很大的帮助。 为什么我们总是得到这个错误:“MSVCRTD.lib(crtexe.obj) : error LNK2019: unreso
我是一名优秀的程序员,十分优秀!