㈠ 初学者。c语言文件操作,输入内容后ctrl+z回车后就没反应了。求助
看第六行
#include"stdio.h"
#include"stdlib.h"
voidmain()
{
FILE*fp;
intc;//这里改成charc;
charfilename[40];
printf("Enterthefilename:");/*输入文件名并创建文件*/
gets(filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("fileopenerror! ");
exit(1);
}
else
printf("succeedinbuildingthenewfile"%s" ",filename);
printf("enterthecontents:");/*输入内容并存储*/
while((c=getchar())!=EOF)/*键盘文件结束标志:输入ctrl+z,显示^z后回车*/
putc(c,fp);
fclose(fp);
printf("Readfromfileetablished:");/*读取文件中的内容并显示*/
fp=fopen(filename,"r");
while((c=getc(fp))!=EOF)
putchar(c);
fclose(fp);
printf(" ");
}
㈡ C语言在C盘目录下建立不了文件。求解答
如果你的系统是win7的话,不能保存在c:盘的根目录。你可以试着存在c:盘的一个目录(文件夹)里。
㈢ 怎样解决C语言程序'不能创建输出文件'
一、 实验环境 汇编语言程序设计的实验环境如下: 1. 硬件环境 微型计算机(Intel x86系列CPU)一台 2. 软件环境 n Windows98/2000/XP操作系统 n 任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等) n 汇编程序(MASM.EXE或TASM.EXE) n 连接程序(LINK.EXE或TLINK.EXE) n 调试程序(DEBUG.EXE或TD.EXE) 文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。 二、 上机实验步骤 注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。 1 .确定源程序的存放目录 建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建: 通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。 请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。 2 .建立ASM源程序 建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。 在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“EDIT.COM C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。 图1 文本编辑器EDIT的编辑窗口 窗口标题行显示了EDIT程序的完整路径名。紧接着标题行下面的是菜单行,窗口最下面一行是提示行。菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。 如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。 编辑窗口用于输入源程序。EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。EDIT中的编辑键和功能键符合Windows的标准,这里不再赘述。 源程序输入完毕后,用Alt-F打开File菜单,用其中的Save功能将文件存盘。如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Save as”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名(本例中为C:\ASM\HELLO.ASM)。 注意,汇编语言源程序文件的扩展名最好起名为.ASM,这样能给后面的汇编和连接操作带来很大的方便。 3 .用MASM.EXE汇编源程序产生OBJ目标文件 源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下: 方法一:在Windows中操作 用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。 方法二:在DOS命令提示符窗口中操作 选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令: I:>C:<回车> C:>CD \ASM<回车> C:\ASM>MASM HELLO.ASM<回车> 操作时的屏幕显示如图2所示。 图2 在DOS命令提示符窗口中进行汇编 不管用以上二个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:C:\ASM\HELLO.OBJ〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作与上面完全相同。 图3 有错误的汇编过程例子 如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。如果源文件有错误,MASM会指出错误的行号和错误的原因。图3是在汇编过程中检查出两个错误的例子。在这个例子中,可以看到源程序的错误类型有两类: 警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得出错误的结果。此例中无警告错误。 严重错误(Severe Errors)。对于严重错误,MASM将无法生成OBJ文件。此例中有两个严重错误。 在错误信息中,园括号里的数字为有错误的行号(在此例中,两个错误分别出现在第6行和第9行),后面给出了错误类型及具体错误原因。如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。 注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。 4 .用LINK.EXE产生EXE可执行文件 在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。具体操作如下: 方法一:在Windows中操作 用资源管理器打开源程序目录C:\ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。 方法二:在DOS命令提示符窗口中操作 选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令: I:>C:<回车> C:>CD \ASM<回车> C:\ASM>LINK HELLO.OBJ<回车> 操作时的屏幕显示如图4所示。 图4 把OBJ文件连接成可执行文件 不管用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:C:\ASM\HELLO.EXE〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(Object Moles),此时输入OBJ文件名HELLO.OBJ并回车,然后进行的操作与上面完全相同。 如果没有错误,LINK就会建立一个HELLO.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。对于无堆栈警告(Warning:NO STACK segment)信息,可以不予理睬,它不影响程序的执行。如链接时有其它错误。须检查修改源程序,重新汇编、连接,直到正确。 5 .执行程序 建立了HELLO.EXE文件后,就可以直接在DOS下运行此程序,如下所示: C:>HELLO〈回车〉 C:> 程序运行结束后,返回DOS。如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。如果程序不显示结果,我们如何知道程序是否正确呢?例如,这里的HELLO.EXE程序并未显示出结果,所以我们不知道程序执行的结果是否正确。这时,我们就要使用TD.EXE调试工具来查看运行结果。此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE。
㈣ C语言文件创建不了
试试这个:项目-项目属性-配置属性-链接器-启用增量链接 将“是”改成“否”,再重新运行试试
㈤ C语言求大神。为什么我的fopen创建不了文件啊
这里写错了:f = fopen("ADDRESS_DATA", "w+");
因为你用的是宏,去掉引号就可以了
f=fopen(ADDRESS_DATA,"w+");
㈥ C语言求大神。为什么我的fopen创建不了文件啊。就是我运行也可以。就是没有文件创建出来
宏变量名 加了引号就不是宏了,而是字符串!
改为:
char mydata[80]="C:\\huliangkai\\Downloads\\student.txt";
f = fopen(mydata,"w+");
。。。。。(mydata,"r");
㈦ C语言che程序,为什么不能创建文件
试试打开时用"w+"
㈧ c语言文件读写问题,文件没内容程序是照着书上搬出来的,运行啥都没问题就是生成的文件里面看不到内容
代码上几个错误:
a)文件名的存储空间只有10个字符,而你输入的也是10个字符,字符串末尾要增加一个\0字符,所以你已经内存访问越界了,文件名数组习惯定义的大小是MAX_PATH,也就是250字符左右
b) 你使用的是不带文件路径的文件名,这样的文件名的具体位置依赖于”当前路径“,而很多人对当前路径的理解是错误的,它不是可执行文件所在位置,所以也许你看了不同位置的文件。你先试试输入完整路径再说
c)你在不停检查fp !=NULL,注意,除非你主动设置fp=NULL否则一旦它有值无论文件后续是否被关闭,它都不是NULL,所以只有fopen后那一个fp!=NULL有意义,其他都是错误
现在很多书都是垃圾,所以书照搬不是好标注,还是要好好理解语言,不要过分相信书
㈨ 在c语言中文件不能被创建的原因是什么
用C?恐怕不怎么好吧,一般都用汇编,写真正的病毒需要你有扎实的计算机基本功。很多
首先要对计算机系统有着良好的理解,这方面需要的知识有:计算机体系结构,计算机组成原理,基本硬件组织。。。
第二,操作系统,一方面要懂操作系统原理。。。另一方面最好深入windows和linux一探系统内核。。。另外,要熟悉CPU的指令集,这一点非常重要,只有对指令集非常熟悉,才能使你写出的代码非常完美,这是躲过防病毒软件的基本功。。。
第三,与编写病毒密切相关的程序设计和调试技术,例如汇编,反汇编,操作系统装载程序机理,可执行文件程序结构(例如PE),windows下的动态链接,进程远程代码注入,跟踪调试,反特征码采集(如加花指令)等等。。。
第四,网络和数据库技术以及信息安全技术。。。
总之,写病毒需要你有良好的底层代码操纵能力,若病毒体直接用C来写的话,代码体积肯定膨胀,还没上道就被人杀掉了!!!,当然,在有些特殊的地方可能需要用C来做一些连接(例如地址重定位中的某些特殊情况)。。。不过一般不多。。。
㈩ c语言没有创建文件
改成
fp=fopen("c:\1\1.txt","w");
同时 C:1这个文件夹需要你手动创建,不然一样会出错.
推荐在打开文件后
if(fp==NULL)
{
printf("openfilefailed ");
return-1;
}
这样看打印就知道是否打开成功了.