为什么我的代码在vc6上执行不了 在linux上却能执行

chenlei1700 chenlei1700 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下
在vc6下一到主函数的文件读取那里就出错 代码中用红色写的部分
谢谢

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


struct data_node
{
char *name;
int value0, value1;
struct data_node *next;
} * head;

struct data_node * new_node ( void )
{
struct data_node *p;
p = ( struct data_node * ) malloc ( sizeof ( struct data_node ) );
p->name = ( char * ) malloc ( 100 );
return p;
}

void add_node ( struct data_node *head,char * target, struct data_node *
tmp_node )
{
struct data_node *crnt,*node;
crnt=head;
while(crnt!=NULL){
if(strcmp(crnt->name,target)==0){
node=crnt->next;
crnt->next=tmp_node;
tmp_node->next=node;
printf("addnode success\n");
return;
}
crnt=crnt->next;
}
printf("add_node fail\n");

}

void delete_node ( struct data_node *head,char *target )
{

struct data_node *crnt,*priv;
crnt=head;
while(crnt!=NULL){

if(strcmp(crnt->name,target)==0){
priv->next=crnt->next;
free(crnt);
/*printf("addnode success");
return;*/
printf("delete_node success\n");
return;
}
priv=crnt;
crnt=crnt->next;

}
printf("delete_node fail\n");
}



void disp_list ( struct data_node *p )
{
while ( p->next != NULL ) {
printf ( "%10s:%3d:%3d\n", p->name, p->value0, p->value1 );
p = p->next;
}
}

int main ( int argc, char ** argv ) {
FILE *f;
struct data_node * tmp_node, * crnt_node;
char data_str[100];

head = new_node ( );
strcpy ( head->name, "HEAD" );
crnt_node = head;

if ( ( f = fopen ( "/home/adam/Desktop/1.txt", "r" ) ) != NULL ) {
while ( fgets ( data_str, sizeof ( data_str ), f ) != NULL ) {
sscanf ( data_str, "%s%d%d", crnt_node->name, &crnt_node->value0,
&crnt_node->value1 );
crnt_node->next = new_node ( );
crnt_node = crnt_node->next;
}
crnt_node->next = NULL;
fclose ( f );
} else exit ( -1 )
;



delete_node ( head,"Oita" );

tmp_node = new_node ( );
strcpy ( tmp_node->name, "Oita2" );
tmp_node->value0 = 0;
tmp_node->value1 = 10;
add_node ( head,"Saga", tmp_node );




disp_list ( head );

exit ( 0 );
}
————————————————————————————
1.txt的内容如下

Niigata 10938 2419889 Niigata
Toyama 2801 1109205 Toyama
Ishikawa 4185 1171791 Ishikawa
Fukui 4188 818975
Yamanashi 4201 881071
Nagano 12598 2189094
Gifu 10209 2104361
Shizuoka 7328 3793153
Aichi 5115 7296527v
Mie 5761 1867696
Shiga 3855 1387110
Kyoto 4613 2644075
Osaka 1893 8822241
Hyogo 8388 5592939
Nara 3691 1416323
Wakayama 4725 1028424
Tottori 3507 603987
Shimane 6707 736882
Okayama 7008 1954344
Hiroshima 8475 2875488
Yamaguchi 6110 1483531
Tokushima 4144 804849
Kagawa 1861 1009328
Ehime 5676 1459988
Kochi 7104 789688
Fukuoka 4836 5055777
Saga 2439 862547 Saga
Oita2 0 10
Nagasaki 4091 1466512
Kumamoto 6907 1835909
Oita 5803 1206174 Oita
Miyazaki 6684 1148414
Kagoshima 9132 1742965
Okinawa 2267 1368137
...全文

相关推荐

VC6.0下实现Linux下的mkdir功能(创建文件夹)

在Windows环境下使用VC6.0开发C++程序时,我们可能会遇到需要模拟Linux下的`mkdir`功能,即创建目录或文件夹的需求。`mkdir`在Linux中是一个命令行工具,用于创建新的目录。

黄忻

在VC6环境下利用Cygwin1.dll编译Linux程序

Cygwin 是一个为 Windows 平台提供 POSIX 兼容层的开源软件集合。它允许 Linux 程序在 Windows 上编译和运行,打破了不同操作系统间的壁垒,对多平台开发者来说至关重要。impdef.exe是Cygwin提供的一个实用工具,它可以分析指定的DLL文件,并生成一个导入库(.lib文件),这个导入库可以用于在Windows平台上的程序链接,使得这些程序能够调用DLL中的函数。生成导入库的过程对于在VC6中使用Cygwin库尤为关键。上述代码中,impdef.exe。

大熊小清新

linux在vc下的源代码

然后,导入并解析Linux内核源代码,利用VC的调试工具逐行跟踪代码,理解内核函数的执行流程。同时,中文注释会帮助理解复杂的内核结构和函数作用,降低学习曲线。

sagacity789

关于解决64位系统上vc6.0关闭不了的解决方案

支持多平台开发:Visual Studio支持跨平台开发,包括iOS、Android和Linux等。5. 集成开发环境(IDE)改进:提供更强大的代码编辑、调试、版本控制和团队协作功能。

suzhe_12

vc6.0中 编写的一个sdl程序例子,编译,执行通过

描述中的“编译,执行通过,很适合初学者学习”意味着这个压缩包内包含了一个完整的项目,用户下载后可以直接在VC6.0环境中编译并运行,无需额外配置。

yml13732276173
评论 10
收藏 已收藏
分享
返回顶部
chenlei1700
C语言 70,040 成员 243,237 内容