opopoppo1105怎么样样格式化

OPPO手机格式化怎么样的所有问题
展开更多问题类型
我要的关键词
共有0个问题
亲,没能找到你想要的搜索结果尝试调整下筛选词试试
OPPO手机热门型号词问题汇总58cv网址导航1290人阅读
深入剖析printf函数(下):
---形参列表和格式化输出是如何实现的?
出处:http://blog.csdn.net/tcpipstack , 欢迎转载,也请保留这段声明。谢谢!)
在上一篇&&
里,我们已经实现了用汇编语言在屏幕上输出了“Hello World”, 迈出了万里长征的第一步,但是我们知道实际的printf的功能是十分强大的,它和scanf一样属于标准输入输出的一种格式化函数,我们一般是这样使用它的:
printf()的基本形式:printf(&格式控制字符串&,变量列表);
二、格式化输出
printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.
例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为转换说明.因为它们指定了如何不数据转换成可显示的形式.
下列列出的是ANSI C标准printf()提供的各种转换说明.
转换说明及作为结果的打印输出
%a & & & & & & & &浮点数、十六进制数字和p-记数法(C99)
%A    浮点数、十六进制数字和p-记法(C99)
%c    一个字符 
%d    有符号十进制整数 
%e    浮点数、e-记数法
%E    浮点数、E-记数法
%f    浮点数、十进制记数法  
%g    根据数值不同自动选择%f或%e.
%G    根据数值不同自动选择%f或%e.
%i & & & & & & & 有符号十进制数(与%d相同)
%o    无符号八进制整数
%p    指针    
%s    字符串
%u    无符号十进制整数
%x    使用十六进制数字0f的无符号十六进制整数 
%X    使用十六进制数字0f的无符号十六进制整数
%%    打印一个百分号
三、形参列表的读入
printf函数的参数列表是如下的形式:
int printf(const char *fmt, ...)
类似于上面参数列表中的token:...,介个是可变形参的一种写法。当传递参数的个数不确定时,就可以用这种方式来表示。
但是电脑比程序员更笨,函数体必须知道具体调用时参数的个数才能保证顺利执行,那么我们必须寻找一种方法来了解参数的个数。
让我们先回到代码中来:
/************************************************************************************
** File: - Z:\code\c\LLprintf\print2.1\LLprintf.c
** Copyright (C), Long.Luo, All Rights Reserved!
** Description:
LLprintf.c
** Version: 2.0
** Date created: 23:56:33,24/01/2013
** Author: Long.Luo
** --------------------------- Revision History: --------------------------------
&author& &data&
************************************************************************************/
#include &LLprintf.h&
// Lprintf
int Lprintf(const char *fmt, ...)
char buf[256];
va_list arg = (va_list)((char*)(&fmt) + 4); /*4是参数fmt所占堆栈中的大小*/
i = vsLprintf(buf, fmt, arg);
buf[i] = 0;
LLprint(buf, i);
如上面代码中的: 
  va_list arg = (va_list)((char*)(&fmt) + 4);&
而va_list的定义:
  typedef char *va_list
这说明它是一个字符指针。
其中的: (char*)(&fmt) + 4) &表示的是...中的第一个参数。
大家肯定很迷惑,不急,再详细解释:
C语言中,参数压栈的方向是从右往左。也就是说,当调用printf函数的适合,先是最右边的参数入栈。
fmt是一个指针,这个指针指向第一个const参数(const char *fmt)中的第一个元素。
fmt也是个变量,它的位置,是在栈上分配的,它也有地址。
对于一个char *类型的变量,它入栈的是指针,而不是这个char *型变量。
换句话说:
你sizeof(p) (p是一个指针,假设p=&i,i为任何类型的变量都可以)
得到的都是一个固定的值。(我的计算机中都是得到的4)
当然,我还要补充的一点是:栈是从高地址向低地址方向增长的。
现在我想你该明白了:为什么说(char*)(&fmt) + 4) 表示的是...中的第一个参数的地址。
为毛我还是不明白啊????
不急,我给你更直观的解释:
/******************************************************************************************
可变参数函数调用原理(其中涉及的数字皆为举例)
===========================================================================================
char fmt[] = &%x%d&;
printf(fmt, i, j);
esp, 3 * 4
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
arg = 0x30468┃
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
0x32000 ───╂────┐
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
└──→ 0x32000┃
┣━━━━━━━━━━┫
┣━━━━━━━━━━┫
实际上,调用 vsprintf 的情形是这样的:
vsLprintf(buf, 0x368);
******************************************************************************************/
下面我们来看看下一句:
i = vsLprintf(buf, fmt, arg);
这句起什么作用呢?
让我们进入下一节:对参数进行格式化处理。
四、参数格式化输出
让我们来看看vsLprintf(buf, fmt, arg)是什么函数:
int vsLprintf(char *buf, const char *fmt, va_list args)
char inner_buf[STR_DEFAULT_LEN];
int align_
va_list p_next_arg =
for (p= * fmt++) {
if (*fmt != '%') {
/* a format string begins */
align_nr = 0;
if (*fmt == '%') {
else if (*fmt == '0') {
while (((unsigned char)(*fmt) &= '0') && ((unsigned char)(*fmt) &= '9')) {
align_nr *= 10;
align_nr += *fmt - '0';
char * q = inner_
memset(q, 0, sizeof(inner_buf));
switch (*fmt) {
*q++ = *((char*)p_next_arg);
p_next_arg += 4;
m = *((int*)p_next_arg);
i2a(m, 16, &q);
p_next_arg += 4;
m = *((int*)p_next_arg);
if (m & 0) {
m = m * (-1);
*q++ = '-';
i2a(m, 10, &q);
p_next_arg += 4;
strcpy(q, (*((char**)p_next_arg)));
q += strlen(*((char**)p_next_arg));
p_next_arg += 4;
for (k = 0; k & ((align_nr & strlen(inner_buf)) ? (align_nr - strlen(inner_buf)) : 0); k++) {
q = inner_
while (*q) {
*p++ = *q++;
return (p - buf);
这个函数起什么作用呢?
我们回想下printf起什么作用呢?
哦,printf接受一个格式化的命令,并把指定的匹配的参数格式化输出。
好的,我们再看看i = vsLprintf(buf, fmt, arg);
vsLprintf返回的是一个长度值,那这个值是什么呢?
会不会是打印出来的字符串的长度呢?
没错,返回的就是要打印出来的字符串的长度。
其实看看printf中后面的一句:LLprint(buf, i);&
介个是干啥的?
什么,你不知道,那赶紧看上一篇文章。
总结: vsLprintf的作用就是格式化。
它接受确定输出格式的格式字符串fmt。用格式字符串对个数变化的参数进行格式化,产生格式化输出。
我们也可以看看一个串口的printf的实现:
//*****************************************************************************
//! A simple UART based printf function supporting \%c, \%d, \%p, \%s, \%u,
//! \%x, and \%X.
//! \param pcString is the format string.
//! \param ... are the optional arguments, which depend on the contents of the
//! format string.
//! This function is very similar to the C library &tt&fprintf()&/tt& function.
//! All of its output will be sent to the UART.
Only the following formatting
//! characters are supported:
//! - \%c to print a character
//! - \%d to print a decimal value
//! - \%s to print a string
//! - \%u to print an unsigned decimal value
//! - \%x to print a hexadecimal value using lower case letters
//! - \%X to print a hexadecimal value using lower case letters (not upper case
//! letters as would typically be used)
//! - \%p to print a pointer as a hexadecimal value
//! - \%\% to print out a \% character
//! For \%s, \%d, \%u, \%p, \%x, and \%X, an optional number may reside
//! between the \% and the format character, which specifies the minimum number
//! of characters t if preceded by a 0 then the extra
//! characters will be filled with zeros instead of spaces.
For example,
//! ``\%8d'' will use eight characters to print the decimal value with spaces
``\%08d'' will use eight characters as well but will
//! add zeroes instead of spaces.
//! The type of the arguments after \e pcString must match the requirements of
//! the format string.
For example, if an integer was passed where a string
//! was expected, an error of some kind will most likely occur.
//! \return None.
//*****************************************************************************
UARTprintf(const char *pcString, ...)
unsigned long ulIdx, ulValue, ulPos, ulCount, ulBase, ulN
char *pcStr, pcBuf[16], cF
va_list vaArgP;
// Check the arguments.
ASSERT(pcString != 0);
// Start the varargs processing.
va_start(vaArgP, pcString);
// Loop while there are more characters in the string.
while(*pcString)
// Find the first non-% character, or the end of the string.
for(ulIdx = 0; (pcString[ulIdx] != '%') && (pcString[ulIdx] != '\0');
// Write this portion of the string.
UARTwrite(pcString, ulIdx);
// Skip the portion of the string that was written.
pcString += ulI
// See if the next character is a %.
if(*pcString == '%')
// Skip the %.
pcString++;
// Set the digit count to zero, and the fill character to space
// (i.e. to the defaults).
ulCount = 0;
cFill = ' ';
// It may be necessary to get back here to process more characters.
// Goto's aren't pretty, but effective.
I feel extremely dirty for
// using not one but two of the beasts.
// Determine how to handle the next character.
switch(*pcString++)
// Handle the digit characters.
// If this is a zero, and it is the first digit, then the
// fill character is a zero instead of a space.
if((pcString[-1] == '0') && (ulCount == 0))
cFill = '0';
// Update the digit count.
ulCount *= 10;
ulCount += pcString[-1] - '0';
// Get the next character.
// Handle the %c command.
// Get the value from the varargs.
ulValue = va_arg(vaArgP, unsigned long);
// Print out the character.
UARTwrite((char *)&ulValue, 1);
// This command has been handled.
// Handle the %d command.
// Get the value from the varargs.
ulValue = va_arg(vaArgP, unsigned long);
// Reset the buffer position.
ulPos = 0;
// If the value is negative, make it positive and indicate
// that a minus sign is needed.
if((long)ulValue & 0)
// Make the value positive.
ulValue = -(long)ulV
// Indicate that the value is negative.
ulNeg = 1;
// Indicate that the value is positive so that a minus
// sign isn't inserted.
ulNeg = 0;
// Set the base to 10.
ulBase = 10;
// Convert the value to ASCII.
// Handle the %s command.
// Get the string pointer from the varargs.
pcStr = va_arg(vaArgP, char *);
// Determine the length of the string.
for(ulIdx = 0; pcStr[ulIdx] != '\0'; ulIdx++)
// Write the string.
UARTwrite(pcStr, ulIdx);
// Write any required padding spaces
if(ulCount & ulIdx)
ulCount -= ulI
while(ulCount--)
UARTwrite(& &, 1);
// This command has been handled.
// Handle the %u command.
// Get the value from the varargs.
ulValue = va_arg(vaArgP, unsigned long);
// Reset the buffer position.
ulPos = 0;
// Set the base to 10.
ulBase = 10;
// Indicate that the value is positive so that a minus sign
// isn't inserted.
ulNeg = 0;
// Convert the value to ASCII.
// Handle the %x and %X commands.
Note that they are treated
// i.e. %X will use lower case letters for a-f
// instead of the upper case letters is should use.
// alias %p to %x.
// Get the value from the varargs.
ulValue = va_arg(vaArgP, unsigned long);
// Reset the buffer position.
ulPos = 0;
// Set the base to 16.
ulBase = 16;
// Indicate that the value is positive so that a minus sign
// isn't inserted.
ulNeg = 0;
// Determine the number of digits in the string version of
// the value.
for(ulIdx = 1;
(((ulIdx * ulBase) &= ulValue) &&
(((ulIdx * ulBase) / ulBase) == ulIdx));
ulIdx *= ulBase, ulCount--)
// If the value is negative, reduce the count of padding
// characters needed.
ulCount--;
// If the value is negative and the value is padded with
// zeros, then place the minus sign before the padding.
if(ulNeg && (cFill == '0'))
// Place the minus sign in the output buffer.
pcBuf[ulPos++] = '-';
// The minus sign has been placed, so turn off the
// negative flag.
ulNeg = 0;
// Provide additional padding at the beginning of the
// string conversion if needed.
if((ulCount & 1) && (ulCount & 16))
for(ulCount--; ulC ulCount--)
pcBuf[ulPos++] = cF
// If the value is negative, then place the minus sign
// before the number.
// Place the minus sign in the output buffer.
pcBuf[ulPos++] = '-';
// Convert the value into a string.
for(; ulI ulIdx /= ulBase)
pcBuf[ulPos++] = g_pcHex[(ulValue / ulIdx) % ulBase];
// Write the string.
UARTwrite(pcBuf, ulPos);
// This command has been handled.
// Handle the %% command.
// Simply write a single %.
UARTwrite(pcString - 1, 1);
// This command has been handled.
// Handle all other commands.
// Indicate an error.
UARTwrite(&ERROR&, 5);
// This command has been handled.
// End the varargs processing.
va_end(vaArgP);
写的很精彩,是不是?
五、应用层的使用
通过上面的工作,我们已经实现了一个自己的printf函数: LLprintf
LLprintf的功能和我们标准库的printf一样强大,我们可以在上层如此使用LLprintf:
/************************************************************************************
** File: - Z:\code\c\LLprintf\print2.1\app.c
** Copyright (C), Long.Luo, All Rights Reserved!
** Description:
app.c --- The Application Level.
** Version: 2.1
** Date created: 23:53:41,24/01/2013
** Author: Long.Luo
** --------------------------- Revision History: --------------------------------
&author& &data&
************************************************************************************/
#include &LLprintf.h&
int main(void)
char *welcome = &
A Tiny Demo show the LLprintf
char *program_name = &LLprintf&;
char *program_author = &Long.Luo&;
char *date = &Jan. 24th, 2013&;
float program_version = 2.1;
Lprintf(&%s\n\n&, welcome);
Lprintf(&\t\t%s, version %f \n\n&, program_name, program_version);
Lprintf(&\tCreated by %s, %s.\n\n&, program_author, date);
make一下,我们再来看看输出结果:
这样我们就了解了printf函数的前因后果,聪明的你,弄明白了吗?^_^
出处:http://blog.csdn.net/tcpipstack , 欢迎转载,也请保留这段声明。谢谢!)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:111308次
积分:1929
积分:1929
排名:第9228名
原创:63篇
转载:18篇
评论:63条
4. 我的微信号:Linux技巧(irefactoring)
阅读:6107
文章:10篇
阅读:16622
(3)(4)(3)(4)(2)(4)(4)(2)(2)(1)(6)(5)(10)(11)(5)(19)超级硬盘数据恢复软件来恢复U盘盘符打不开、双击提示格式…更新时间:日 22:37:40软件分类: /
/ 免费软件运行环境:winxp/vista/win7/win8/热 度 值:1,061℃评
论:共有评论
条本文作者:官方主页:
感谢昵称: cjhf 投稿 一种恢复U盘盘符打不开、双击提示格式化、变成RAW分区的方法适用情况:恢复硬盘、移动硬盘、u盘打不开的方法,盘符变成RAW分区,双击就提示未格式化、根目录损坏且无法读取(也适用于内存卡数据恢复)故障描述:有时候我们会碰到某个分区用着用着就打不开了,在浏览器里面双击这个盘符就会提示磁盘未格式化,是否要格式它,碰到这种情况不要惊慌,更加不要按系统的提示去乖乖的格掉这个盘符。保持好数据现场,大多数情况下这类提示格式化的数据还是可以完整恢复的。系统出现这种盘符打不开,一般是由以下几种原因引起的,比如病毒引起或者非法关机造成分区数据异常,破坏了分区里面某些关键数据,或者是电源不稳定供电不足导致磁盘I/O出错,热插拔移动硬盘或者U盘也经常会出现提示未要恢复的现象。 下面我们用[b]超级硬盘来介绍一下如何来恢复盘符提示未格式化的数据恢复过程。这是一个移动硬盘,里面有4个分区,在某次接上硬盘后发现第一个分区打不开了,系统浏览器里面这个盘符还显示,不过卷标改变了,一点这个盘符就跳出一个窗口说磁盘未格式化,询问是否要格式化这个磁盘,根目录打不开也看不到了。这个分区是FAT32的,因为格式化后会破坏数据,所以不能去格这个盘的
运行超级硬盘数据恢复软件后,我们选第3项,恢复丢失的分区,这个功能适合这类根目录打不开提示需要格式的情况。我们点下一步后,选择这个移动硬盘“磁盘2”,再点下一步按钮。
等待几分钟扫描分区,就可以列出了这个丢失的分区,以蓝色字体来加亮显示出来,很容易区分出,而其他灰色字体的分区是现在系统里面正常的分区,不是我们需要恢复的,就不要选它。选上蓝色的分区后,点下一步按钮。这个在系统里面打不开的分区,根目录很清晰的就显示在我们的恢复软件里面,数据是正常完好的,恢复后文件都对,可以正常使用。
如果您碰到盘符提示需要格式化的情况,我们强烈建议您千万别格式化这个盘,不然就会造成2次破坏,如果这个分区是FAT32的,那么数据一般来说会有部分文件损坏无法恢复,而且目录结构一般都不大完整,无法按原先的根目录结构恢复,另外用数据恢复软件来扫描这个盘的时间也会相应多了很多,很不划算的。数据恢复开卷第一篇就是数据丢失后不要乱搞,保持好现场,就不会造成2次破坏,这条原则要牢牢做到才行。软件下载地址
(推荐使用,解压缩更快!)
本文链接:上篇文章:下篇文章: 您可能还会对这些文章感兴趣!
&最新文章 &软件酷推荐◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆
Copyright (C)
, All rights reserved& & & & 以后在 AppStore 上可以刷表买应用和游戏么,应该是可以...
  可能很多人会疑问:Apple Watch 效应?Apple Watch 都还没有上市,它哪来什么效应...
苹果在当地时间周三向开发者推送了新一轮的 Safari beta 版进行测试,以便为即将到来...
Nexus 6 来到中国后改名为 Moto X Pro,型号为 XT1115,是一款全网通手机,支持移动,...
5998 港币这个价格与 HTC One M8(16GB 版)刚上市时的价格相当,算的上是间接减价了...
果粉们一直都希望 iOS 设备能够用上多任务操作功能,所以一大堆这类的越狱插件也就应...
企业 IT 管理部门非常担心 Android 用户进入到内部环境中,一旦连接到公司的电子邮件...
12 英寸的 MacBook 在今年的销量可以占整条 MacBook 产品线销量的 15-20%,这将使得它...
采用 Unity 3D 引擎打造,将各种特色玩法融于一体的三国题材力作《推倒三国》在经历了...
一般来说人们玩游戏是为了调整心情,或者纯粹的打发时间,在虚拟的游戏世界当中玩家可...
由 F84 Games 和 POW!娱乐公司(斯坦李于 2001 年创办)联合打造的一款第三人称视角的...
可能有人会觉得,什么都要拍下来分享是一种病,但是反过来想想,有多少看客为此丰富了...
说到游戏开发商Kiloo可能许多玩家朋友对于这个名字还比较陌生,但是一旦提到他们的旗...
《任务之旅(QuestRun)》是一款 Phoenix Online 工作室的作品,该作原本是 Steam 创...
最近萌萌哒大白可以说赚足了人气,尽管迪士尼之前已经推出了一款名为《Big Hero 6 Bot...
对于经常外出的朋友来说,只需要携带 iPad(iPhone、touch)和iRig 2,插上吉他就能随...
这款配件是日本厂商万代(Bandai)以电影《回到未来》中的时光跑车作为蓝本进行设计,...
如果你平时经常活动在手机信号不是非常好区域,不妨考虑一下 Linkasepro 的 iPhone 保...
插入 iPhone,启动应用程序,建立连接,拍摄,合成,3D 拍摄就是这么简单!
能折叠的键盘才是好键盘。
Apple Watch 还有一个多月才上市,第三方厂商还有时间来设计各种奇葩的外设产品,我大...
如果想跟手机如胶似漆,黏得难舍难分,又贴近的就像阳光、空气、水如此密不可分没有距...
MagBak 磁力保护套去年在 kickstarter 也是一个大火的 iOS 外设项目,而最近这个系列...
磁盘被完全格式化后怎么恢复MAC系统~!
注册时间 最后登录
在线时间672 小时 UID
主题帖子人气
青苹果, 积分 150, 距离下一级还需 50 积分
如果你的mac book pro 只有单系统&&磁盘被完全格式化~!& &无法启动的时候选择进入 U盘~!那么请看下面~!
1你需要一个安装U盘
2需要一个网路
启动电脑 按住command+R&&进入网络恢复模式
等待基础安装&&这时候会有1个界面&&4个选项& &我们不理他& &用鼠标点屏幕左上角的苹果 选择 启动磁盘&&OK&&你的U盘就可以载入了~!
小弟我今天帮朋友装机子 真是坑B啊&&客服叫我完全网络恢复。。。下个系统就20多个小时 最后还是自己弄出方法来了~!
希望能帮些朋友
注册时间 最后登录
在线时间6103 小时 UID
帖子 精华9
主题帖子人气
任何技术性求助的PM一
其实我告诉你,如果你有安装U盘的话,开机长按option就可以选择这个U盘了。不需要从网络恢复BaseSystem来启动到U盘。
所以楼主你是浪费好长一段时间在下载BaseSystem上。
另外,“完全”格式化是一个错误的概念。楼主应该是想表达磁盘被重新分区并抹掉所有内容的意思。
——————————————————————————————————————————————————
为避免以后看贴的人被误导,我这里补充一下。
我们平时长按option后进入的恢复分区里看到的实用工具其实是运行在BaseSystem上的。
BaseSystem就是一个简化的操作系统,带一些必要的恢复OS X工具。类似win的PE吧。
加载这个BaseSystem有几种方式:
1.开机长按option进入恢复分区,然后BaseSystem被加载。
2.开机长按option选择OS X安装盘,然后BaseSystem被加载。
3.开机长按option选择TM备份盘,然后BaseSystem被加载(有些机型需要GUID分区表的磁盘才能用TM备份盘加载)
4.开机长按command+r自动下载BaseSystem镜像到内存并自动加载
方法1的BaseSystem无法对磁盘重新分区,因为它本来就是运行在磁盘上的。点击重新安装系统时会自动在线下载系统来安装。
方法2可以对磁盘重新分区。点击重新安装系统会直接从安装盘里释放镜像来安装。
方法3可以对磁盘重新分区。点击重新安装系统会从网络下载系统来安装。点击从TimeMachine恢复会将TM备份盘里的内容直接恢复到指定分区。
方法4可以对磁盘重新分区。点击重新安装会从网络喜爱在系统来安装。没有OS X安装盘,TM备份,恢复分区丢失的时候使用。
所有PM已被屏蔽,所以别做无意义的事。
注册时间 最后登录
在线时间672 小时 UID
主题帖子人气
回 1楼(noah1985) 的帖子
引用第1楼noah-08-05 23:15发表的
:其实我告诉你,如果你有安装U盘的话,开机长按option就可以选择这个U盘了。不需要从网络恢复BaseSystem来启动到U盘。 所以楼主你是浪费好长一段时间在下载BaseSystem上。......大哥 真的么?
我磁盘只有单系统WIN7
按option 根本没用
直接载入win7的
注册时间 最后登录
在线时间6103 小时 UID
帖子 精华9
主题帖子人气
任何技术性求助的PM一
Re:回 1楼(noah1985) 的帖子
引用第2楼killbj-08-05 23:18发表的 回 1楼(noah1985) 的帖子 :
大哥 真的么?
我磁盘只有单系统WIN7
按option 根本没用
直接载入win7的
你插上OS X安装U盘看看
所有PM已被屏蔽,所以别做无意义的事。
注册时间 最后登录
在线时间672 小时 UID
主题帖子人气
回 3楼(noah1985) 的帖子
引用第3楼noah-08-05 23:19发表的
:你插上OS X安装U盘看看 ......下次试吧~!
我正在装MAC了~!我当时各种办法都没用就是进不了安装U盘~!
注册时间 最后登录
在线时间6103 小时 UID
帖子 精华9
主题帖子人气
任何技术性求助的PM一
Re:回 3楼(noah1985) 的帖子
引用第4楼killbj-08-05 23:22发表的 回 3楼(noah1985) 的帖子 :
下次试吧~!
我正在装MAC了~!我当时各种办法都没用就是进不了安装U盘~!
只说说你操作错误了。
所有PM已被屏蔽,所以别做无意义的事。
注册时间 最后登录
在线时间672 小时 UID
主题帖子人气
那会儿论坛各种搜索都没有办法啊~!
最后求助客服~!我发现客服就是忽悠人的~!没一点技术含量
注册时间 最后登录
在线时间963 小时 UID
主题帖子人气
出门之前撸一管 正人君子一整天
注册时间 最后登录
在线时间557 小时 UID
主题帖子人气
有U盘就不需要网络恢复了
注册时间 最后登录
在线时间672 小时 UID
主题帖子人气
大哥哦~!我这台机器只有WIN7
有4个盘符 全部NTFS~!没有回复分区~!没有隐藏磁盘~!
开机都不自动读光碟
威锋旗下产品
Hi~我是威威!
沪ICP备号-1 丨 深公安网监备案号 5
增值电信业务经营许可证:
Powered by Discuz!

我要回帖

更多关于 oppo1105手机怎么样 的文章

 

随机推荐