1. python問題 def print_all(f): print f.read() def rewind(f): f.seek(0)
第一個函數作用是在屏幕上列印file對象f的內容
第二個函數將f的指針移到起始處,不需要輸出任何內容,當然不要print
2. rewind函數的具體實現
12.5.1 rewind函數
文件指針FILE *fp中,包含一個讀寫位置指針char *_nextc,它指向下一次文件讀寫的位置。
typedef struct
{
int _fd; /* 文件號 */
int _cleft; /* 緩沖區中剩下的位元組數 */
int _mode; /* 文件操作模式 */
char * _nextc; /* 下一個位元組的位置 */
char * _buff; /*文件緩沖區位置 */
}FILE;
每當進行一次讀寫後,該指針自動指向下一次讀寫的位置。
當文件剛打開或創建時,該指針指向文件的開始位置。
可以用函數ftell()獲得當前的位置指針,也可以用rewind()/fseek()函數改變位置指針,使其指向需要
讀寫的位置。
rewind()函數
原型:void rewind(FILE *fp)
作用:使文件fp的位置指針指向文件開始。
[例12.4] 把一個文件的內容顯示在屏幕上,並同時復制到另一個文件。
#include "stdio.h"
void main()
{
FILE *fp1, *fp2;
fp1 = fopen("file1.c", "r"); /* 源文件 */
fp2 = fopen("file2.c", "w"); /* 復制到file2.c */
while(!feof(fp1)) putchar(fgetc(fp1)); /* 顯示到屏幕上 */
rewind(fp1); /* fp回到開始位置 */
while(!feof(fp1)) fputc(fgetc(fp1), fp2);
fclose(fp1);
fclose(fp2);
}
3. 關於python的菜鳥問題
defprint_all(f):#定義一個函數print_all,接受一個參數f
printf.read()#這個函數執行f.read()
defrewind(f):#定義一個函數rewind,接受一個參數f
f.seek(0)#f.seek(0)將f的文件指針恢復到文件開頭
defprint_a_line(line_count,f):#定義一個函數print_a_line,有兩個參數line_count,f
printline_count,f.readline()
print "First let's print the whole file:
"
print_all (current_file) #將current_file作為參數調用函數print_all,執行函數時f等於current_file
其餘函數調用都是差不多,就不多說了
4. C中的rewind函數問題
fp=fopen("e:\\file\\five.txt","w");改成"w+"試一下,應該是文件沒有按讀寫方式打開,所以,不能重新定位文件指針。
5. rewind函數
在我的VC環境里是可以的啊!你頭文件沒有包含全哦!下面是全部代碼:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch;
if((fp=fopen("string","wt+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
ch=getchar();
while (ch!='\n')
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
6. C語言中rewind函數的作用與用法
rewind函數
作用:將文件內部的位置指針重新指向一個流(數據流/文件)的開頭。
用 法: void rewind(FILE *stream);
注意:不是文件指針而是文件內部的位置指針,隨著對文件的讀寫文件的位置指針(指向當前讀寫位元組)向後移動。而文件指針是指向整個文件,如果不重新賦值文件指針不會改變。
rewind函數作用等同於 (void)fseek(stream, 0L, SEEK_SET);[1]
頭文件: stdio.h
返回值:無
程序示例:
#include <stdio.h>
#include <dir.h>
int main(void)
{
FILE *fp;
char fname[10] = "TXXXXXX", *newname, first;
newname = mktemp(fname);
fp = fopen(newname,"w+");
if(NULL==fp)
return 1;
fprintf(fp,"abcdefghijklmnopqrstuvwxyz");
rewind(fp);
fscanf(fp,"%c",&first);
printf("The first character is: %c\n",first);
fclose(fp);
remove(newname);
return 0;
}
7. python 靈異事件 求大神解答
因為圖1中定義了rewind函數:
def rewind(f):
f.seek(0)
8. rewind函數問題
fp=fopen("11.txt", "r+")
換成這個試一下
9. 你好,我用rewind函數沒把指針直到開始,關閉文件然後打開就行。幫忙看看程序怎麼回事。
不是rewind有問題,
fp1=fopen("file.txt","w");
這樣打開的文件是只寫的,當然讀不到東西
如果想可讀寫,需這樣打開文件fp1=fopen("file.txt","r+");
建議你學習下fopen 按不同方式打開有什麼區別。